Javascript 如何将日期转换为“格式”;YYYY-MM-DD hh:MM:ss“;到UNIX时间戳

Javascript 如何将日期转换为“格式”;YYYY-MM-DD hh:MM:ss“;到UNIX时间戳,javascript,date,datetime,timestamp,unix-timestamp,Javascript,Date,Datetime,Timestamp,Unix Timestamp,如何将格式为“YYYY-MM-DD hh:MM:ss”(例如“2011-07-15 13:18:52”)的时间转换为UNIX时间戳 我尝试了这段Javascript代码: date = new Date("2011-07-15").getTime() / 1000 alert(date) 它是有效的,但当我向输入中添加时间('2011-07-15 13:18:52')时,它会产生NaN。这会返回自1970年1月1日以来的毫秒数: Date.parse('2011-07-15 10:05:20'

如何将格式为“YYYY-MM-DD hh:MM:ss”(例如
“2011-07-15 13:18:52”
)的时间转换为UNIX时间戳

我尝试了这段Javascript代码:

date = new Date("2011-07-15").getTime() / 1000
alert(date)

它是有效的,但当我向输入中添加时间('2011-07-15 13:18:52')时,它会产生
NaN

这会返回自1970年1月1日以来的毫秒数:
Date.parse('2011-07-15 10:05:20')


只需除以1000即可获得秒而不是毫秒。

使用长日期构造函数并指定所有日期/时间组件:

var match = '2011-07-15 13:18:52'.match(/^(\d+)-(\d+)-(\d+) (\d+)\:(\d+)\:(\d+)$/)
var date = new Date(match[1], match[2] - 1, match[3], match[4], match[5], match[6])
// ------------------------------------^^^
// month must be between 0 and 11, not 1 and 12
console.log(date);
console.log(date.getTime() / 1000);

月份从0开始,与天不同!所以这将非常有效()


您已经接受了答案,但可以使用更简单的正则表达式:

function stringToDate(s)  {
  s = s.split(/[-: ]/);
  return new Date(s[0], s[1]-1, s[2], s[3], s[4], s[5]);
}

alert(stringToDate('2011-7-15 20:46:3'));

当然,输入字符串的格式必须正确。

以下代码适用于格式
YYYY-MM-DD hh:MM:ss

function parse(dateAsString) {
    return new Date(dateAsString.replace(/-/g, '/'))
}

此代码将
YYYY-MM-DD hh:MM:ss
转换为
yyy/MM/DD hh:MM:ss
,这很容易被
Date
构造器解析。

Date=new Date.parse('2011-07-15 10:05:20')/100这就是您所理解的。。。我收到错误NaN
console.log(Date.parse('2011-07-15 10:05:20')
NaN
,必须随浏览器的不同而不同。在Chrome上测试,没有问题()老兄,我得到了时间戳,但不是我得到的正确的时间戳。当我给出“2011-07-15 14:54:12”时,我得到的时间戳是“13134452”。但当我用“”检查时,它显示的时间戳将日期转换为Mon,2011年8月15日07:48:52 GMT,这是错误的。这个答案是最好的方法。谢谢
function parse(dateAsString) {
    return new Date(dateAsString.replace(/-/g, '/'))
}