2017-07-12 45 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)