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

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

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

但我只需要现在的时间,比如05:45

我怎么把它赋值给变量呢?


当前回答

Date.toLocaleTimeString()选项

Date.toLocaleTimeString()函数可以接收一个选项参数来格式化输出

以下是一些可用的选项

new Date().toLocaleTimeString([], { timeStyle: "full" })   // 4:43:58 AM Pacific Standard Time
new Date().toLocaleTimeString([], { timeStyle: "long" })   // 4:43:58 AM PST
new Date().toLocaleTimeString([], { timeStyle: "medium" }) // 4:43:58 AM
new Date().toLocaleTimeString([], { timeStyle: "short" })  // 4:43 AM

或者你可以用这些值指定小时、分钟和秒的表示形式:

“数字”(例如,1) “2位数”(例如,01)

new Date().toLocaleTimeString([], { hour: '2-digit', minute: "2-digit" }) 
// 04:43 AM

或者使用hour12: true或false设置12小时时间

更多细节请看 Date.toLocaleTimeString()参数 Intl.DateTimeFormat()选项

其他回答

试试这个

new Date().toTimeString().slice(0, 8);

or

new Date().toTimeString().split(" ")[0];

它应该会起作用。

试试这个:

var date = new Date();
var hour = date.getHours();
var min = date.getMinutes();

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

我找不到一个完全符合我需要的解决方案。我想要简洁的代码,所以我想到了这个:

纯JAVASCRIPT

函数时间现在(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> <输入 id=“test1” 类型=“时间” 值=“10:40” />


更新

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

对于html5类型时间,格式必须是hh:mm。

函数timeNow(i) { i.value = new Date()。toLocaleTimeString([],{小时:'2-digit',分钟:'2-digit'}); } <a onclick="timeNow(test1)" href="#">SET TIME</a> . <input id="test1" type="time" value="10:40" />

在jsfiddle上试试

var hours = date.getHours();
        var minutes = date.getMinutes();
        var ampm = hours >= 12 ? 'pm' : 'am';
        hours = hours % 12;
        hours = hours ? hours : 12; // the hour '0' should be '12'
        minutes = minutes < 10 ? '0'+minutes : minutes;
        var strTime = hours + ':' + minutes + ' ' + ampm;
        console.log(strTime);
        $scope.time = strTime;

        date.setDate(date.getDate()+1);
        month = '' + (date.getMonth() + 1),
        day = '' + date.getDate(1),
        year = date.getFullYear();
        if (month.length < 2) month = '0' + month;
        if (day.length < 2) day = '0' + day;
        var tomorrow = [year, month, day].join('-');
        $scope.tomorrow = tomorrow;

这对我来说很有效,但这取决于你点击Date()时得到的结果:

Date().slice(16,-12)