gpt4 book ai didi

node.js - MomentJS 在 UTC 中获取 JavaScript 日期

转载 作者:IT老高 更新时间:2023-10-28 21:54:33 24 4
gpt4 key购买 nike

我无法通过以下方式获取 MongoDB 记录的 JavaScript 日期字符串。它一直使用我的本地时间。

var utc = moment.utc().valueOf();
console.log(moment.utc(utc).toDate());

输出:

Tue Nov 11 2014 14:42:51 GMT-0500 (EST)

我需要它是 UTC,所以我可以在 Mongo 中粘贴这个时间戳,所以类型是 Date

我该怎么做?

最佳答案

时间戳是一个时间点。通常,这可以用 epoc 之后的毫秒数表示(1970 年 1 月 1 日 12AM UTC 的 Unix Epoc)。该时间点的格式取决于时区。虽然是同一时间点,但时区之间的“小时值”并不相同,必须考虑到 UTC 的偏移量。 .

这里有一些代码来说明。 A point is time 以三种不同的方式捕获。

var moment = require( 'moment' );

var localDate = new Date();
var localMoment = moment();
var utcMoment = moment.utc();
var utcDate = new Date( utcMoment.format() );

//These are all the same
console.log( 'localData unix = ' + localDate.valueOf() );
console.log( 'localMoment unix = ' + localMoment.valueOf() );
console.log( 'utcMoment unix = ' + utcMoment.valueOf() );

//These formats are different
console.log( 'localDate = ' + localDate );
console.log( 'localMoment string = ' + localMoment.format() );
console.log( 'utcMoment string = ' + utcMoment.format() );
console.log( 'utcDate = ' + utcDate );

//One to show conversion
console.log( 'localDate as UTC format = ' + moment.utc( localDate ).format() );
console.log( 'localDate as UTC unix = ' + moment.utc( localDate ).valueOf() );

哪个输出这个:

localData unix = 1415806206570
localMoment unix = 1415806206570
utcMoment unix = 1415806206570
localDate = Wed Nov 12 2014 10:30:06 GMT-0500 (EST)
localMoment string = 2014-11-12T10:30:06-05:00
utcMoment string = 2014-11-12T15:30:06+00:00
utcDate = Wed Nov 12 2014 10:30:06 GMT-0500 (EST)
localDate as UTC format = 2014-11-12T15:30:06+00:00
localDate as UTC unix = 1415806206570

就毫秒而言,每个都是相同的。这是完全相同的时间点(尽管在某些运行中,后面的毫秒要高一毫秒)。

就格式而言,每个都可以在特定的时区中表示。并且该时区字符串的格式在完全相同的时间点看起来不同!

您要比较这些时间值吗?只需转换为毫秒。一个毫秒值始终小于、等于或大于另一个毫秒值。

您想比较特定的“小时”或“天”值并担心它们“来自”不同的时区吗?先用moment.utc(existingDate)转成UTC,再做运算。这些转换的示例,当从数据库中出来时,是示例中的最后一个 console.log 调用。

关于node.js - MomentJS 在 UTC 中获取 JavaScript 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26873200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com