我有一个类似2016-02-21T02:14:39.000000
如果可能的话,希望使用Javascript将其转换为大纪元时间
答案 0 :(得分:2)
尝试
var ts = "2016-02-21T02:14:39.000000";
var unix_seconds = ((new Date(ts)).getTime()) /1000;
console.log(unix_seconds);
getTime
返回毫秒,因此除以1000得到秒
答案 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;
上述内容可以很容易地扩展为将字符串视为UTC,合并时区并验证输入,但在这种情况下似乎并不需要。
请注意,大多数浏览器都会解析OP中的格式,但是有些浏览器不会使用,而有些浏览器会将其视为本地格式,有些则视为UTC格式。根据ISO 8601,它应该被视为本地的,这是我所做的。