2017-07-12 43 views
0
ISOString
moment = require('moment-timezone') 

fromISO = (format, dateISO)-> 
    if !format? then format = 'YYYY-MM-DD HH:mm:ss' 
    return moment(dateISO).tz("Europe/Amsterdam").format(format) 

toISO = (dateTime)-> 
    return moment(dateTime, "DD.MM.YYYY hh:mm:ss").tz("Europe/Amsterdam").toISOString() 

问题

首先我想从一个ISOString转换为特定的格式在一个特定的时区。瞬间转换自/至与时区

其他的方法。

不幸的是,它忽略了时区。我总是得到相同的ISOString。在浏览器控制台中,我需要使用浏览器的本地时间,在我的服务器上,它只是在不减少时间的情况下对其进行转换。

PS:首先,我用:

return moment(dateISO).utcOffset('+02:00').format(format) 

return moment(dateTime, "DD.MM.YYYY hh:mm:ss").utcOffset('-02:00').toISOString() 

目前,我使用.add.subtract

+0

哪个是你的问题?你的代码示例中使用了哪种语言?我不明白你想做什么,无论如何请注意['toISOString()'](http://momentjs.com/docs/#/displaying/as-iso-string/):_always返回时间戳UTC,即使有问题的时刻是在本地模式._ – VincenzoC

+0

Thx,我想我明白了。我的问题是我在当地时间有串线,例如''欧洲/阿姆斯特丹''2014-06-01 12:00“',但无论我在代码中指定哪个时区,它总是返回相同的ISO时间。它只需要服务器或浏览器的时区。 –

回答

0

此作品在Chrome中:

从当地时间ISO:

moment.tz("2014-06-01 12:00", "Europe/Amsterdam").toISOString() 

ins的

moment("2014-06-01 12:00").tz("Europe/Amsterdam").toISOString() 

从ISO时间TEAD当地

moment.tz(dateISO,"Europe/Amsterdam").format(format)