如何将格式"YYYY-MM-DD hh:mm:ss"的日期转换为 UNIX 时间戳



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

我尝试了这段Javascript代码:

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

,它的工作,但它导致NaN时,我添加时间('2011-07-15 13:18:52')的输入。

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

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);

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

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

此代码将YYYY-MM-DD hh:mm:ss转换为YYYY/MM/DD hh:mm:ss,便于Date构造函数解析。

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

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'));

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

月从0开始,不像天!所以这将完美地工作(测试)

function dateToUnix(year, month, day, hour, minute, second) {
    return ((new Date(Date.UTC(year, month - 1, day, hour, minute, second))).getTime() / 1000.0);
}

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

相关内容

  • 没有找到相关文章

最新更新