【发布时间】:2016-03-01 00:40:18
【问题描述】:
我有一个格式为28/11/2015 09:41 PM 的日期时间,我想将其转换为纪元时间戳。我怎样才能用 javascript 做到这一点?
另外:我想从该时间戳中添加和减去 7200 秒,并将其转换回原始格式。我怎样才能做到这一点?是否需要先将日期时间转换为时间戳?
【问题讨论】:
标签: javascript datetime timestamp unix-timestamp
我有一个格式为28/11/2015 09:41 PM 的日期时间,我想将其转换为纪元时间戳。我怎样才能用 javascript 做到这一点?
另外:我想从该时间戳中添加和减去 7200 秒,并将其转换回原始格式。我怎样才能做到这一点?是否需要先将日期时间转换为时间戳?
【问题讨论】:
标签: javascript datetime timestamp unix-timestamp
有一个很棒的库可用!
【讨论】:
查找有关 JavaScript 内置对象的信息的好地方是 MDN,其中包含有关 datetime(或实际上只是 Date)对象的这篇文章 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date)。
从 Date 对象获取纪元时间戳的方法是使用 getTime() 函数。它返回自 1970 年 1 月 1 日以来的毫秒数。
var dateNow = Date.now();
var epochNow = dateNow.getTime();
然后您可以添加秒数:
epochNow += (7200 * 1000); // * 1000 because it's in milliseconds
然后再转换回来:
dateNow.setTime(epochNow);
祝你好运!
注意
注意 JavaScript 日期实现中的不一致,尤其是在早期版本的 Internet Explorer 中。正如一些人所指出的,像 moment.js (http://momentjs.com/) 这样的好的库对于防止问题非常有帮助。但是,如果您只使用完全现代的浏览器或节点,则应该不会有那么多问题。
【讨论】:
new Date(myDateString);吗? JavaScript不会直接创建日期对象吗?