我有一个字符串日期列表列表,如下所示:'17/12/2017 19:34'
。它们是 CET
日期。
如何将其转换为用户的浏览器日期?
我正在这样做:
const tzGuess = moment.tz.guess()
export const toTimeZone = (time) => {
const format = 'DD/MM/YYYY HH:mm'
return moment(time, format).tz(tzGuess).format(format)
}
console.log(toTimeZone('17/12/2017 19:34', tzGuess))
但是我怎么能告诉moment
我第一次通过的日期是CET
日期呢?
谢谢!
最佳答案
您可以使用moment.tz
使用给定时区解析时间字符串的函数(例如'Europe/Madrid'
)。
问题是:CET 是什么意思?如果您的输入具有固定的 UTC+1 偏移量(如中欧时间),那么您可以使用 RobG 的解决方案。如果你必须同时考虑CET和CEST,我认为最好的解决方案是使用moment.tz
.
这里是一个实时代码示例:
const tzGuess = moment.tz.guess()
const toTimeZone = (time) => {
const format = 'DD/MM/YYYY HH:mm'
return moment.tz(time, format, 'Europe/Madrid').tz(tzGuess).format(format)
}
console.log(toTimeZone('17/12/2017 19:34', tzGuess))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.4/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.13/moment-timezone-with-data-2012-2022.min.js"></script>
关于时区的一个很好的资源是 timezone tag info page .
关于javascript - CET 时区中的日期到用户时区的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47860230/