我需要格式化javascript日期以通过json发送到服务器。服务器预计时间根据这个例子javascript时区格式
2011-08-31T06:49:28.931 -0700
它方便地告诉我,当我试图提交类似
2011-08-31T06:49:28.931 -07:00
我遇到的麻烦是格式与时区部分,-0700
。我一直在看Date API,并没有看到指定时区格式的方法。我可以做d.getTimezoneOffset
,但它会返回240(我认为我在EDT中是Im)。
所以,我可以将240转换为0400来表示4小时。然而,我担心其他时区的正确性。我的问题是
1)如何将getTimezoneOffset()
的结果转换为所需的格式,以及如何确定标志应该是什么(这就是我担心的部分)?
2)有没有办法让日期对象本身的格式,所以我不必做任何自定义?如果我做d.toString()
我得到"Wed Aug 31 2011 09:48:27 GMT-0400 (EDT)"
,所以这里的时区部分是我想要的格式。所以这可能是可能的。也许最好的解决方案是使用正则表达式来关闭时区d.toString()
...
3)额外信用:服务器需要某种标准的格式?使用match(/^.*GMT(-?\d*)/)
在数组的索引1处返回“-0400”。也许我应该使用它?我想知道这个正则表达式是否适用于符号背景下的所有时区。
您已经测试方法的toJSON()? –
@andrew你是什么意思? 'toJson'返回类似于“2011-08-31T14:29:38.924Z”的东西,它似乎没有包含任何时区信息 – hvgotcodes
(new Date(Date.now()))。toJSON()将日期输出为字符串“2011 -08-31T14:31:48.875Z“在格林尼治时区。 –