momentjs转换格式_关于momentjs:Moment.js将本地时间转换为UTC时间确实有效

我想使用Moment.js将本地时间转换为UTC等效。 我相信我有正确的方法,但它不会改变时间。

我在悉尼澳大利亚+11,并期望UTC时间提前11个小时。

在当前对象内部,isUTC标志从false变为true,但时间不会移位,我是不是要使用不同的技术。

如何实际获取此对象的当前UTC日期

转换前

var val = '18/03/2015';

var selectedDate = moment(val, 'DD/MM/YYYY');

转换后

var a = selectedDate.utc()

我只是尝试了这段代码,似乎我得到了正确的UTC时间。我想我只想确认我正在做的是从moment.js访问UTC时间的正确方法

a.format("YYYY-MM-DD HH:mm:ssZ")

我发现我的应用程序中的使用模式不正确

selectedDate.utc().format(fullFormat)

它应该是

moment.utc(selectedDate).format(fullFormat)

最后一段代码片段是正确的。 看看momentjs.com/docs/#/parsing/utc。 为了进入utc模式,你应该创造一个新的时刻。 虽然在我自己的测试中,我似乎能够成功地在现有时刻调用.utc(),所以谁知道呢。

不是moment().utc(...,而是moment.utc(...,我猜:)

@medik是对的,你应该使用moment.utc(datetime).format(MOMENT_UTC_DATE_TIME_FORMAT)

如果selectedDate是以毫秒为单位的时间戳,则它不起作用。 为什么?

问题很古老,但我也遇到过。它可能对某人有用:

使用utcOffset()方法计算UTC时间:

selectedDate = (moment(selectedDate).add(-(moment().utcOffset()), 'm'));

并明确指定UTC:

selectedDate = moment.parseZone(selectedDate).utc().format();

我想我有相反的问题...在JSON中的日期是utc但是被解释为本地的,所以我不得不添加utc偏移量。 但有一点,我认为你真的想使用selectedDate来确定偏移,因为它会改变......这是我的代码:const correctionDateTime = m.add((moment(utcDate).utcOffset()),'m');

这对我有用!!

selectedDate = moment(selectedDate).add(moment(selectedDate).utcOffset(), 'm').utc().format()

如果需要减去偏移,这不起作用。

经过几个令人沮丧的时间,我发现了什么问题

简答:要将时间转换为utc,我们需要使用format()

长答案:举个例子

moment.utc(1559586600000).format('LLL')

.utc将isUTC标志设置为true。

记录日期时,d键始终以本地时区显示时间。 (这让我们相信它无法正常工作 - 如屏幕截图所示)

但我们需要使用.format来获取UTC格式的日期/时间。

上面的代码返回June 3, 2019 6:30 PM,这是正确的UTC时间。

从本地时间创建本地时刻对象并将其转换为UTC然后对其进行格式化,然后从该格式化的UTC字符串创建新的UTC时刻

var localDateString = '24/04/2019';

var localDateStringFormat = 'DD/MM/YYYY';

var utcMoment = moment.utc(moment(localDateString, localDateStringFormat ).utc().format('YYYY-MM-DD HH:mm:ssZ'))

console.log(utcMoment);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值