38

我有这种格式的日期字符串:

2009-07-15 00:00:00 - 2009-07-15 08:16:23

谁能帮我将日期字符串调整为 unix 时间戳,如下所示:

1247634000 - 1247663783

我正在使用GMT-5时区。

可以使用哪些 JavaScript 或 jQuery 技术?

4

4 回答 4

67

我强烈建议您在 js 中处理日期时使用Moment Date 库。它真的很轻,很棒。

var timeStamp = ( moment('2009-07-15 00:00:00').unix() )*1000
于 2012-07-16T18:01:15.087 回答
21

在 Javascript 中,您可以直接将字符串传递给 Date 对象构造函数,例如

var date = new Date('2009-07-15 00:00:00'.split(' ').join('T'))

这将为您提供日期对象并从中获取时间戳,您可以这样做

date.getTime() / 1000

除以 1000 因为getTime将以毫秒为单位给出时间戳

工作演示

笔记:

Firefox 无法解析给定的日期时间格式,因此我们需要先将其转换为正确的格式,因为我们只需将日期和时间组件之间的空格替换为“T”,这将使其成为有效的 ISO 8601 格式和Firefox 将能够解析它

参考:

MDN 中的日期解析

ISO 8601 日期格式

在这里问了同样的问题

于 2012-07-16T18:06:33.097 回答
19
var input = "2009-07-15 00:00:00 - 2009-07-15 08:16:23";
input = input.split(" - ").map(function (date){
    return Date.parse(date+"-0500")/1000;
}).join(" - ");

演示

Date.parse文档

注意:这不适用于旧浏览器,因为我使用的是Array.map,但我认为您应该可以轻松地对其进行填充。

于 2012-07-16T18:02:07.187 回答
0

使用 split 方法,您可以将日期时间格式更改为最新,这对每个人来说都非常简单易行。

 var str = "2017-05-09T00:00:00.000Z";
 var res = str.split("-",2);
 var res = str.split("T",1);
 var temp=res;
于 2017-06-26T15:44:18.243 回答