nodejs将时间戳string转换为具有自定义时区和UTC的date
假设我得到的值是'2014-03-03 16:20:20'
作为input,我想将它转换为实时与时区(即节点坐落在欧洲,但时间戳收集在美国),之后,我想获得实际值的UTC表示。
任何想法什么软件包可以帮助? 尝试moment.js没有运气..
终于用momentjs-timezone
find了答案,
这是有点滑稽,因为你不会得到一个事件暗示在主网站http://momentjs.com/timezone/,但你可以在http://github.com/moment/moment-timezonefind它
无论如何,这是你如何做到这一点:
var tz0 = moment.tz("2014-03-03 16:20:20", "Asia/Jerusalem") var tz1 = moment.utc(tz0); console.log(tz0.format('YYYY-MM-DD hh:mm:ss')); console.log(tz1.format('YYYY-MM-DD hh:mm:ss'));
和输出,你可以看到respectivly
2014-03-03 04:20:20 2014-03-03 02:20:20
// moment.js var utc = moment('2014-03-03 16:20:20','YYYY-MM-DD HH:mm:ss', 'us'); // or timezone string pass from client var eu = utc.zone("+02:00"); var eu = utc.zone("-02:00");
momentjs可能会帮助你。 如下所示:
- 你能格式inputISOdate加时区信息,如2014-03-03T16:20:20-05:00(假设你从当地时间格林尼治标准时间-5时区)
- 然后调用: moment.parseZone('2014-03-03T16:20:20-05:00')。zone(1).format() (假设你想在GMT + 1时区得到本地时间)
希望有所帮助,Ron
时区是一个优雅的模块。
var tz = require("timezone/loaded"); var formattedDate = tz(unformattedTimestamp, '%d %B %Y, %-I:%M %p', "Europe/Amsterdam");
您可以使用bootstraphelper来捕获用户的时区。