如何仅在 JavaScript 中获取当前时间

IT技术 javascript datetime
2021-01-17 12:04:40

如何在 JavaScript 中获取当前时间并在时间选择器中使用它?

我尝试var x = Date()并得到:

2012 年 5 月 15 日星期二 05:45:40 GMT-0500

但我只需要当前时间,例如, 05:45

如何将其分配给变量?

6个回答
var d = new Date("2011-04-20T09:30:51.01");
d.getHours(); // => 9
d.getMinutes(); // =>  30
d.getSeconds(); // => 51

或者

var d = new Date(); // for now
d.getHours(); // => 9
d.getMinutes(); // =>  30
d.getSeconds(); // => 51
@Chinmay235 添加,T所以现在它是正确的通用 ISO。顺便说一句,我只undefined在 IE 中看到无论如何固定。
2021-03-18 12:04:40
var d = new Date("2011-04-20 09:30:51.01"); alert(d.getHours()); // => 9 输出 NaN
2021-04-03 12:04:40

简短而简单:

new Date().toLocaleTimeString(); // 11:18:48 AM
//---
new Date().toLocaleDateString(); // 11/16/2015
//---
new Date().toLocaleString(); // 11/16/2015, 11:18:48 PM

4 小时后(使用 milisec:sec==1000):

new Date(new Date().getTime() + 4*60*60*1000).toLocaleTimeString(); // 3:18:48 PM or 15:18:48

2天前:

new Date(new Date().getTime() - 2*24*60*60*1000).toLocaleDateString() // 11/14/2015
如果我最后一次不需要 AM 或 PM 该怎么办。
2021-03-20 12:04:40
这会在我测试过的所有浏览器中打印出“... GMT+0800(中国标准时间)”...你可能会说这与我的设置有关,但即便如此,我只想显示 HH: MM:SS 使用 ONE 命令(如果有)。
2021-03-23 12:04:40
加减法的计算很有帮助!
2021-03-25 12:04:40
如果我想添加 1 分钟,我需要将其更改为什么?
2021-04-06 12:04:40

使用javascript有效地获取和设置当前时间

我找不到完全满足我需要的解决方案。我想要干净而小巧的代码,所以我想出了这个:

(在 master.js 中设置一次并在需要时调用。)

纯Java脚本

function timeNow(i) {
  var d = new Date(),
    h = (d.getHours()<10?'0':'') + d.getHours(),
    m = (d.getMinutes()<10?'0':'') + d.getMinutes();
  i.value = h + ':' + m;
}
<a onclick="timeNow(test1)" href="#">SET TIME</a>
<input id="test1" type="time" value="10:40" />


更新

现在有足够的浏览器支持来简单地使用: toLocaleTimeString

对于html5类型time,格式必须是hh:mm.

function timeNow(i) {
  i.value = new Date().toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'});
}
<a onclick="timeNow(test1)" href="#">SET TIME</a>
<input id="test1" type="time" value="10:40" />

Try it on jsfiddle

@gcoleman0828 我参加聚会迟到了。感谢投票:)
2021-03-25 12:04:40
@QPaysTaxes 我的回答两者兼而有之。javascript 获取时间,html 向用户展示如何在需要时也可以使用代码来设置时间。我已经更新了我的答案以反映这一点。感谢您指出。
2021-03-29 12:04:40
根据浏览器的语言环境,toLocaleTime 将具有不同的格式,相反,您可以使用固定的语言环境,而不像 fr 那样使用 PM/AM 来获得与 html5 时间格式匹配的时间 new Date().toLocaleTimeString('fr', {hour: '2-digit', minute:'2-digit'});
2021-04-10 12:04:40
...您是否将“get”拼写为“set”?如果不是,您的答案与您的标题不匹配,并且您的标题与问题不匹配。
2021-04-11 12:04:40
时间显示为我晚了 30 分钟,如果我点击设置时间,它是正确的,但在军事时间。设置时间应该切换猜测不起作用
2021-04-13 12:04:40

尝试

new Date().toLocaleTimeString().replace("/.*(\d{2}:\d{2}:\d{2}).*/", "$1");

或者

new Date().toTimeString().split(" ")[0];
在第二种形式中,如果您只使用 toString() 并将 0 更改为 4,您也将获得格式为 HH:MM:SS 的时间。
2021-04-02 12:04:40

您可以简单地使用这些方法。

console.log(new Date().toLocaleTimeString([], { hour: '2-digit', minute: "2-digit", hour12: false }));
console.log(new Date().toLocaleTimeString([], { hour: '2-digit', minute: "2-digit" }));

问题的明确答案之一
2021-03-28 12:04:40