时间格式兼容和时间相加减

时间格式兼容

最近写项目遇到一个奇怪的问题,在IE中无法用angular2的管道将"2017-6-8"这样的时间转换为"2017-06-08"这样的标准时间,打印出来是这样的NaN-NaN-NaN;而"2017-06-08"进入管道是ok的。网上给出的答案是不识别yyy-mm-dd这种格式,需要改成yyyy/mm/dd 这种格式。

当我尝试用 new Date(time).getFullyear() 获取年时(获取月,日,时,分,秒类似),若time 为 "2017-6-8"这样的格式将会失败(谷歌比较强大不会挑理),需用time.replace(/-/g,'/') 将其转换为"2017/6/8"。
完整写法:new Date(time.replace(/-/g,'/')).getFullYear()

时间相加减

例如 现在是 2017-06-25,我想得到10天后的日历但是月分大小月之分,若是二月份还得考虑是否是闰年,这就复杂了。
用new Date(yyyy,MM,dd)就可迎刃而解了。
1.先用上面的方法得到年,月,日(yyyy,MM,dd)
2.然后new Date(yyyy,MM,dd+10)
3.new Date(yyyy,MM,dd+10).getFullYear()+'-'+(new Date(yyyy,MM,dd+10).getMonth()+1)+new Date(yyyy,MM,dd+10).getDate()

  • 当要计算时分秒时 new Date(yyyy,MM,dd,HH,mm,ss)

你可能感兴趣的:(时间格式兼容和时间相加减)