如何在javascript中将字符串转换为Unix时间戳?

IT技术 javascript string time unix-timestamp
2021-03-08 03:14:34

我想"2013-09-05 15:34:00"在 javascript 中将字符串转换为 Unix 时间戳。任何人都可以告诉如何做到这一点?谢谢。

5个回答

您可以初始化一个 Date 对象并调用 getTime() 来以 unix 形式获取它。它以毫秒为单位出现,因此您需要除以 1000 才能在几秒钟内得到它。

(new Date("2013/09/05 15:34:00").getTime()/1000)

它可能有十进制位,所以将它包装在 Math.round 中可以清除它。

Math.round(new Date("2013/09/05 15:34:00").getTime()/1000)
也不能保证使用该字符串格式。
2021-04-29 03:14:34
这也会将给定的日期时间转换为时间戳中的本地时间。
2021-05-02 03:14:34

尝试

(new Date("2013-09-05 15:34:00")).getTime() / 1000

DaMouse404 答案有效,但不是使用破折号,而是使用斜线:

您可以初始化一个 Date 对象并调用 getTime() 来以 unix 形式获取它。它以毫秒为单位出现,因此您需要除以 1000 才能在几秒钟内得到它。

(new Date("2013/09/05 15:34:00").getTime()/1000)

它可能有十进制位,所以将它包装在 Math.round 中可以清除它。

Math.round(new Date("2013/09/05 15:34:00").getTime()/1000)
(new Date("2013-09-05 15:34:00").replace(/-/g, '/').getTime()/1000)使用替换功能时要小心,你应该使用g,否则它只会转换第一个破折号。我在这上面浪费了很多时间。
2021-05-11 03:14:34
我不确定为什么最后一条评论被赞成。Date对象不具有一个replace方法。此外,这个答案是不正确的;使用斜杠会产生不正确的格式以保证解析 by Date.parse(所使用的内容new Date(string))。请参阅为什么 Date.parse 给出不正确的结果?.
2021-05-13 03:14:34

为此,您应该查看 moment.s-library

使用它,您可以编写如下内容:

newUnixTimeStamp = moment('2013-09-05 15:34:00', 'YYYY-MM-DD HH:mm:ss').unix();
我认为分钟的正确格式是mm. 所以的第二个参数moment'YYYY-MM-DD HH:mm:ss
2021-05-07 03:14:34

我会自己使用日期解析,因为它是本机解决方案。MDN 文档。

const datetimeString = '04 Dec 1995 00:12:00 GMT';
const unixTimestamp = Date.parse(datetimeString);
// unixTimestamp = 818035920000
new Date(string)使用Date.parse. 此外,您不应该使用Date.parse任意格式。请参阅为什么 Date.parse 给出不正确的结果?.
2021-05-03 03:14:34