JavaScript新日期('[Date String]')没有't理解:时区之间的偏移
JavaScript new Date('[Date String]') doesn't understand : between timezone offset
我在asp.net razor页面中有一个隐藏字段,其中包含datetimeoffset值,我在JavaScript中使用它来创建日期对象。所以在Chrome中的工作方式很有魅力,但在IE和Firefox中。我发现了那个愚蠢的错误。它是:在小时和分钟之间偏移。IE和Firefox中的JavaScript理解+0330,但无法解析+03:30,我不知道如何格式化日期-时间以更改为这种形状。z、 zz、zzz和K只返回偏移量az+000:00而不在+0000中。
new Date("11-20-2010 15:00:00 +03:30") Working in Chrome but in IE and Firefox
new Date("11-20-2010 15:00:00 +0330") Working in all
有人能帮我吗?
JavaScript中日期的字符串解析是高度特定于实现的。根据浏览器和浏览器版本的不同,您会发现不止这一个问题。你可以在这里找到图表中的一些变化。
为了在日期解析中具有真正的跨浏览器一致性,您需要放弃使用带有字符串的Date
构造函数。相反,您可以自己解析字符串或使用库。
最好的库(IMHO)是moment.js.
// You would parse your string like this
var m = moment("11-20-2010 15:00:00 +03:30","MM-DD-YYYY HH:mm:ss Z");
// If you need a Date object back, you can get one easily
var d = m.toDate();
// Or you can use other functions, such as formatting to a string
var s = m.format("YYYY-MM-DD h:mm a");
此外,您可能想从asp.net页面开始传递一个ISO-8601格式的字符串。在.Net中,使用yourDateTimeOffset.ToString("o")
。Moment可以在默认情况下解析这些,而不需要任何额外的说明符。
相关文章:
- JQuery需要帮助理解(i,el)
- toLocaleDateString和toLocaleString方法不尊重机器时区
- javascript解释器如何理解变量的数据类型
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 高库存时期时间与时区不匹配
- JavaScript的额外材料:理解奇怪的部分
- 仅在IE中,javascript中的时区名称不正确
- 带时区的Javascript Datestring转换器
- 无法理解JavaScript中的静态方法
- 理解typescript中的构造函数接口
- 我没有'I don’我不理解for在循环中的用途
- 获取用户选择的不带时区的日期
- Rails:如何获取当前用户'使用Heroku时的时区
- 时刻时区和时区(_Z)
- 理解es6-mixin超类约定
- 分析特定区域设置(而不是时区!)中的日期字符串
- 理解“;静态“;方法
- moment.js在两个时区格式的日期之间存在差异
- 函数hide()、prev()、show()被组装以获得所需的结果,但无法理解其工作原理
- JavaScript新日期('[Date String]')没有't理解:时区之间的偏移