Javascript将时间转换为纪元格式

时间:2016-02-25 02:43:51

标签: javascript date datetime epoch

我有一个类似2016-02-21T02:14:39.000000

的约会日期

如果可能的话,希望使用Javascript将其转换为大纪元时间

2 个答案:

答案 0 :(得分:2)

尝试

var ts = "2016-02-21T02:14:39.000000";

var unix_seconds = ((new Date(ts)).getTime()) /1000;

console.log(unix_seconds);

getTime返回毫秒,因此除以1000得到秒

https://jsfiddle.net/tbxac0de/

答案 1 :(得分:0)

据推测,将其转换为大纪元时间"你的意思是自常见的UNIX和ECMAScript时代以来的几秒或几毫秒。通过将字符串转换为Date并获取其内部时间值,可以找到时间值。

到目前为止,将字符串转换为Date的最佳方法是手动解析它。图书馆可以提供帮助,但功能并不难写。例如。解析" 2016-02-21T02:14:39.000000"作为本地日期(即没有时区的ISO 8601格式),请使用以下内容:



// Parse y-m-dTh:m:s as local date and time
// since there is no timezone
function parseIsoLocal(s) {
  var b = s.split(/\D/);
  return new Date(b[0],b[1]-1,b[2],b[3],b[4],b[5],
                 ((b[6]||'')+'000').slice(0,3));
}

// Convert string to Date
var d = parseIsoLocal('2016-02-21T02:14:39.000000');

// Show date and milliseconds since epoch
document.write(d + '<br>' + +d);
&#13;
&#13;
&#13;

上述内容可以很容易地扩展为将字符串视为UTC,合并时区并验证输入,但在这种情况下似乎并不需要。

请注意,大多数浏览器都会解析OP中的格式,但是有些浏览器不会使用,而有些浏览器会将其视为本地格式,有些则视为UTC格式。根据ISO 8601,它应该被视为本地的,这是我所做的。

相关问题