Date 对象用于处理日期和时间。之前一个项目踩了个坑(收获一个缺陷),这里总结下常用方法与注意事项。
1、创建 Date 对象的语法:
(1)创建当前时间:var myDate=new Date() ;
(2)常用传参初始化:new Date(yyyy,mth,dd,hh,mm,ss); 或 new Date(yyyy,mth,dd);
例:new Date(2019,4,13,12,0,0); //输出:Mon May 13 2019 12:00:00 GMT+0800 (中国标准时间)
这里注意月份从0开始,0-11分别代表1月-12月;星期类似,0-6分别代表周日-周6。
天数多了会自动往下月计算,天数为负数则往上个月计算,例如:
new Date(2019,2,1) //Fri Mar 01 2019 00:00:00 GMT+0800 (中国标准时间)
new Date(2019,2,0) //Thu Feb 28 2019 00:00:00 GMT+0800 (中国标准时间) //天为0表示上个月的最后一天
new Date(2019,2,-1) //Wed Feb 27 2019 00:00:00 GMT+0800 (中国标准时间) //天为-1表示上个月的倒数第二天
(3)常用方法:
例如格式化输入:date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate()
getTime()可用于计算两个时间的间隔,如var ms = time1.getTime() - time2.getTime() // 或得两个时间与1970.1.1之间的毫秒差再相减得到两个时间之间的毫秒差。 var day = parseInt(ms/(1000 * 60 * 60 * 24)) //获得两个时间相差的天数
(4)兼容性(待验证)
类似 new Date('xxxx/xx/xx xx:xx:xx') 形式的时间对象在 IOS 和 Andriod 系统上都可以被正确的识别,而类似 new Date('xxxx-xx-xx xx:xx:xx') 形式的时间对象在 ios 系统上无法被正确的识别,可先将"-"替换成"/"进行处理。
(5)取上个月时间时踩的坑
取上个月的1号到最后一天:
var myDate = new Date();
myDate.setDate(01);//改句为解决问题的关键,没有这一句时,当今天是3月29或5月31这种时,在下面一句时会有问题
myDate.setMonth(myDate.getMonth() - 1);//3月29时,改句执行后myDate为3月1日
myDate.setDate(getMonthDays(myDate.getFullYear(), myDate.getMonth()));
$("#datePicker2").html(myDate.format()); //format()需要自己扩展方法
myDate.setDate(01);
$("#datePicker").html(myDate.format());









网友评论