前后端数据交互时,时间通常作为重要的查询条件进行使用,以下总结了几个js关于时间使用的小方法:
1.输入年月获取输入的月份有多少天
function mGetDate(year, month){
var d = new Date(year, month, 0);
return d.getDate();
}
function getDay(year){
//闰年
if(((year%4==0)&&(year%100!=0))||(year%400==0))
return 366;
else
return 365;
}
3.使用DateTimePicker控件时,如果只初始化了控件的年月日,而没有初始化具体时间,如:2017-12-08(如下图),
此时input里面的默认时间为 2017-12-08 08:00:00 而不是2017-12-08 00:00:00,如果此时想要通过js获取这个日期的零点,可以使用以下方式(假设$('#daycalendarBox').val()为控件选择时间后input中的值):
stime = Date.parse(new Date($('#daycalendarBox').val()+" "+"00:00:00"));
stime为最终获得的时间戳,以上方法只是简单的通过字符串拼接来获取时间,比较常用。
4.获取当前时间的后一天并展示
需要获取当前时间的年月日并通过固定格式展示,方法如下:
var tmr = Date.parse(new Date())+24*60*60*1000;
var dt = new Date(tmr);
var m = dt.getMonth() + 1;
var t = dt.getFullYear() + "-" + m + "-"
+ dt.getDate();
$('#endDateBox').val(t);
和上面的方法大同小异,都是通过时间戳进行时间计算,然后分别获取时间对象的具体年月日,在生成固定格式显示。如果获取前一天的时间不通过时间戳进行计算,而是直接通过 对象.getDate()+1这种方法获取的话,在每月最后一天,这个获取的时间会变成原本没有的日期(如:本月最后一天为31号,那么用这种方式获取的日期为32)。