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

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

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

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

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


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

or

var d = new Date(); // for now
d.getHours(); // => 9
d.getMinutes(); // =>  30
d.getSeconds(); // => 51

你的意思是:

var d = new Date();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();

试试这个:

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

这- - - - - -

var x = new Date(); 
var h = x.getHours(); 
var m = x.getMinutes(); 
var s = x.getSeconds(); 

so-

 x = date
h = hours
m = mins
s = seconds

使用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上试试


看看这些Date方法…

更大字符串- https://开发者.mozilla.org/en- us/web /javascrips/web/javascript/javascript / global_objects/date/愚蠢的字符串 totime弦- https://开发者.mozllla.org/en - us/docs/web/javascrips/web/javascript/com// global_objects/date/totimeststststststg


Try

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

Or

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

赋值给变量并显示。

time = new Date();

var hh = time.getHours();
var mm = time.getMinutes();
var ss = time.getSeconds() 

document.getElementById("time").value = hh + ":" + mm + ":" + ss;

简短而简单:

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

这是最近的路。

var now = new Date().toLocaleTimeString();
console.log(now)

这里还有一种没有提到的字符串操作方法。

var now = new Date()
console.log(now.toString().substr(16,8))

你可以这样做。

const date = new date (); const time = date.toTimeString()。分割(' ')[0].split(“:”); Console.log (time[0] + ':' + time[1])


const date = date ().slice(16,21); console.log(日期);


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;

function getCurrentTime(){
    var date = new Date();
    var hh = date.getHours();
    var mm = date.getMinutes();

    hh = hh < 10 ? '0'+hh : hh; 
    mm = mm < 10 ? '0'+mm : mm;

    curr_time = hh+':'+mm;
    return curr_time;
}

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

Date().slice(16,-12)

var today = new Date();  //gets current date and time
var hour = today.getHours();         
var minute = today.getMinutes();
var second = today.getSeconds();

简单的函数,以获得日期和时间分离,并与时间和日期HTML输入兼容的格式

function formatDate(date) {
  var d         = new Date(date),
      month = '' + (d.getMonth() + 1),
      day   = '' + d.getDate(),
      year  = d.getFullYear();

  if (month.length < 2) month = '0' + month;
  if (day.length < 2) day = '0' + day;

  return [year, month, day].join('-');
}

function formatTime(date) {
        var hours   = new Date().getHours() > 9 ? new Date().getHours() : '0' + new Date().getHours()
        var minutes = new Date().getMinutes() > 9 ? new Date().getMinutes() : '0' + new Date().getMinutes()

        return hours + ':' + minutes
}

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

console.log(新日期()。toLocaleTimeString([],{小时:'2-digit',分钟:'2-digit',小时12:false})); console.log(新日期()。toLocaleTimeString([],{小时:'2-digit',分钟:'2-digit'}));


在ES6中一个简单的方法是这样做的,在你要求的格式(hh:mm):

const goodTime = ' ${new Date().getHours()}:${new Date().getMinutes()} '; console.log(因着);

(显然,控制台日志记录不是解决方案的一部分)


试试这个

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

or

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

它应该会起作用。


以下是我的做法:(希望能帮助到别人) 我正在做的是验证用户在HTML时间输入中输入的时间不是过去:

let inputTime = value; // from time input in html (06:29)

const splittedInputTime = inputTime.split(':');

let currentDate = new Date();
currentDate.setHours(splittedInputTime[0]);
currentDate.setMinutes(splittedInputTime[1]);

const finalInputTime = currentDate.toTimeString().split(" ")[0];

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

// Returns a boolean (true/ false)
let validTime = finalInputTime >= currentTime;

getTime() {
      let today = new Date();
      let h = today.getHours();
      let m = today.getMinutes();
      let s = today.getSeconds();
      h = h < 10 ? "0" + h : h;
      m = m < 10 ? "0" + m : m;
      s = s < 10 ? "0" + s : s;
      let time = h + ":" + m + ":" + s;
      return time;
    },

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()选项