日期字符串转换为JavaScript/jQuery中的unix时间戳

soz*_*hen 34 javascript jquery unix-timestamp

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

2009-07-15 00:00:00 - 2009-07-15 08:16:23
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我调整日期字符串到unix时间戳到这样的事情:

1247634000 - 1247663783
Run Code Online (Sandbox Code Playgroud)

我正在使用GMT-5Timezone.

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

Grz*_*zan 65

我强烈建议您在使用js中的日期时使用Moment Date lib.它真的很轻,很棒.

var timeStamp = ( moment('2009-07-15 00:00:00').unix() )*1000
Run Code Online (Sandbox Code Playgroud)

  • 该库确实使语法更清晰,逻辑更简单.看起来非常值得包括这个以日期/时间为中心的node.js功能.6KB缩小,对于那些在浏览器端包含此内容的人. (2认同)
  • 真.当我尝试"moment.js"时,在经历了很多与其他答案的挣扎之后,这是一种直接的安心.祝福创造'moment.js`的人! (2认同)

Sak*_*tel 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中的Date.parse

ISO 8601日期格式

这里问同样的问题


Som*_*Guy 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(" - ");
Run Code Online (Sandbox Code Playgroud)

演示

Date.parse 文档

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