使用时区将时间转换为/到ISOString

时间:2017-07-12 15:47:45

标签: coffeescript momentjs

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

1 个答案:

答案 0 :(得分:0)

适用于Chrome:

从当地时间到ISO:

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

而不是

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

从ISO时间到本地

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