Moment.js Convert Local time to UTC time does work
我想使用Moment.js将本地时间转换为UTC等效。 我相信我有正确的方法,但它不会改变时间。
我在悉尼澳大利亚+11,并期望UTC时间提前11个小时。
在当前对象内部,isUTC标志从false变为true,但时间不会移位,我是不是要使用不同的技术。
如何实际获取此对象的当前UTC日期
转换前
1 2 | var val = '18/03/2015'; var selectedDate = moment(val, 'DD/MM/YYYY'); |
转换后
1 | var a = selectedDate.utc() |
我只是尝试了这段代码,似乎我得到了正确的UTC时间。我想我只想确认我正在做的是从moment.js访问UTC时间的正确方法
1 | a.format("YYYY-MM-DD HH:mm:ssZ") |
我发现我的应用程序中的使用模式不正确
1 | selectedDate.utc().format(fullFormat) |
它应该是
1 | moment.utc(selectedDate).format(fullFormat) |
问题很古老,但我也遇到过。它可能对某人有用:
使用utcOffset()方法计算UTC时间:
1 | selectedDate = (moment(selectedDate).add(-(moment().utcOffset()), 'm')); |
并明确指定UTC:
1 | selectedDate = moment.parseZone(selectedDate).utc().format(); |
这对我有用!!
1 | selectedDate = moment(selectedDate).add(moment(selectedDate).utcOffset(), 'm').utc().format() |
经过几个令人沮丧的时间,我发现了什么问题
简答:要将时间转换为utc,我们需要使用
长答案:举个例子
.utc将isUTC标志设置为true。
记录日期时,
但我们需要使用.format来获取UTC格式的日期/时间。
上面的代码返回
从本地时间创建本地时刻对象并将其转换为UTC然后对其进行格式化,然后从该格式化的UTC字符串创建新的UTC时刻
1 2 3 4 5 6 | 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); |
1 | <script src="https://momentjs.com/downloads/moment.js"> |