JS时间函数应用
javascript获取一个月的天数
function days(year,month){
var dayCount;
now = new Date(year,month, 0);
dayCount = now.getDate();
return dayCount;
}
alert(days(2014,7))
/**
*对Date的扩展,将 Date 转化为指定格式的String
*月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
*年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
*例子:
*(new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
*(new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
*/
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
例子:
var day = new Date();
var time = day1.format("yyyy-MM-dd");
//获取指定时间的最后一天,第二个参数传入flase就是取当月第一天
function getCurrentMonthLast(date, getLast = true) {
var endDate = new Date(date); //date 是需要传递的时间如:2018-08
var month = endDate.getMonth();
var nextMonth = ++month;
var nextMonthFirstDay = new Date(endDate.getFullYear(), nextMonth, 1);
if (getLast) {
//取当月的最后一天
var oneDay = 1000 * 60 * 60 * 24;
var dateString = new Date(nextMonthFirstDay - oneDay);
} else {
//取当月的第一天
var dateString = new Date(endDate.getFullYear(), endDate.getMonth(), 1);
}
// console.log(dateString) //Wed Oct 31 2018 00:00:00 GMT+0800 (中国标准时间)
return dateString.toLocaleDateString(); //toLocaleDateString() 返回 如:2018/8/31
};
例子:
var dateYar = getCurrentMonthLast("2020-05");
var start = dateYar.replace(new RegExp('/', 'g'), "-"); //把2018/8/31 替换成2018-8-31