JavaScript日期
编辑教程JavaScript日期
Moment.js为原生JavaScript日期对象提供了包装。
为此,Moment.js扩展了功能,还解决了对象中的几个缺陷。
使用本地日期进行解析显然是不可预测的。例如,假设我在美国使用计算机,但是我有DD / MM / YYYY格式的日期。
var a = new Date('01/12/2016'); //December 1 2016 in DD/MM/YYYY format
//"Tue Jan 12 2016 00:00:00 GMT-0600 (Central Standard Time)"
对于本机Date对象,此行为没有好的解决方法。
Moment的解析器可以很好地处理它:
moment('01/12/2016', 'DD/MM/YYYY', true).format()
"2016-12-01T00:00:00-06:00"
此外,ECMA Script 5规范对ISO 8601日期的偏移量做出了不寻常的断言:
缺少时区偏移的值为“ Z”
实际上,这意味着将没有偏移的ISO 8601日期视为UTC值,从而产生以下奇怪之处:
//US local format
var a = new Date('1/1/2016');
//"Fri Jan 01 2016 00:00:00 GMT-0600 (Central Standard Time)"
//ISO 8601
var a = new Date('2016-01-01');
//"Thu Dec 31 2015 18:00:00 GMT-0600 (Central Standard Time)"
ES2015规范解决了该错误,使其与ISO8601规范保持一致,该规范指定了不存在偏移的本地时间。
这以其自身的方式是不好的,因为它具有许多负面的向后兼容性影响。
使用Moment,除非您另外指定,否则日期始终被解释为本地时间。随着ES2015的采用,这不会改变。
moment('2016-01-01')
//"2016-01-01T00:00:00-06:00"
算术是缺少本机Date对象的另一个区域。Date对象实际上没有为此提供任何API。相反,它依赖于溢出的日期值。
假设您想在2016年4月30日前增加1天。使用date对象,您将需要执行以下操作:
var a = new Date('4/30/2016');
a.setDate(a.getDate() + 1);
这可以解决问题,但是有点不直观。
Moment提供了一个API,用于添加/减去:
moment('4/30/2016', 'MM/DD/YYYY').add(1, 'day')
//"2016-05-01T00:00:00-05:00"
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟