Koo*_*Inc 1 javascript datetime
在javascript中,您可以从字符串创建Date对象,例如
var mydate = new Date('2008/05/10 12:08:20');
console.log(mydate); //=> Sat May 10 2008 12:08:20 GMT+0200
Run Code Online (Sandbox Code Playgroud)
现在在字符串中使用毫秒来尝试这个
var mydate = new Date('2008/05/10 12:08:20:551'); // or '2008/05/10 12:08:20.551'
console.log(mydate); //=> NaN
Run Code Online (Sandbox Code Playgroud)
只是出于好奇:这是为什么?
编辑:感谢您的回答,这些都提供了充分的解释.也许在将来某个日期字符串中会支持使用毫秒.直到然后我把它煮熟了,这可能对某人有用:
function dateFromStringWithMilliSeconds(datestr){
var dat = datestr.split(' ')
,timepart = dat[1].split(/:|\./)
,datestr = dat[0]+' '+timepart.slice(0,3).join(':')
,ms = timepart[timepart.length-1] || 0
,date;
date = new Date(datestr);
date.setMilliseconds(ms);
return date;
}
Run Code Online (Sandbox Code Playgroud)
如果您知道不同的组件,则可以将此重载用于Date构造函数:
var mydate = new Date(2008,6,10,12,8,20,551);
Run Code Online (Sandbox Code Playgroud)
月份注6,月份从0-11开始.
如果需要,您可以获取字符串表示并将其拆分为其组成部分,并将它们传递给此构造函数:
var datestring = '2008/05/10 12:08:20:551';
var datearray = datestring.split(/\s|:|\//g)
var mydate = new Date(datearray[0], parseInt(datearray[1]) + 1 , datearray[2], datearray[3],datearray[4],datearray[5],datearray[6]);
Run Code Online (Sandbox Code Playgroud)
如本文档所述,字符串重载应符合RFC-1123(后者又符合RFC-822),不支持毫秒.