javascript日期处理合集
let time = new Date()
console.log(time) // Wed Oct 23 2019 10:47:04 GMT+0800 (中国标准时间)
console.log(time.getDate()) // 23
console.log(time.getDay()) // 3 ==> 周三
console.log(time.getMonth()) // 9 ==> 9+1月 获取本月需要+1
console.log(time.getFullYear()) // 2019
console.log(time.getTime()) // 1571799028703
格式化日期 XXXX-MM-DD-HH-MM-SS
// 格式化日期 XXXX-MM-DD-HH-MM-SS
function formatDate(time) {
if (!time) return ''
let date = new Date(time)
return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() +
' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()
}
获取本周、本季度、本月、上月的开始日期、结束日期
/**
* 获取本周、本季度、本月、上月的开始日期、结束日期
*/
var now = new Date(); //当前日期
var nowDayOfWeek = now.getDay(); //今天本周的第几天
var nowDay = now.getDate(); //当前日
var nowMonth = now.getMonth(); //当前月
var nowYear = now.getYear(); //当前年
nowYear += (nowYear < 2000) ? 1900 : 0; //
var lastMonthDate = new Date(); //上月日期
lastMonthDate.setDate(1);
lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
var lastYear = lastMonthDate.getYear();
var lastMonth = lastMonthDate.getMonth();
格式化日期:yyyy-MM-dd
//格式化日期:yyyy-MM-dd
function formatDate(date) {
var myyear = date.getFullYear();
var mymonth = date.getMonth() + 1;
var myweekday = date.getDate();
if (mymonth < 10) {
mymonth = "0" + mymonth;
}
if (myweekday < 10) {
myweekday = "0" + myweekday;
}
return (myyear + "-" + mymonth + "-" + myweekday);
}
获取n个月后的日期
// 获取n个月后的日期
function getDateAfterNMonth(n) {
let time = new Date()
time.setMonth(time.getMonth() + n)
return time
}
let DayBeforeSixMonths = getDateAfterNMonth(-6)
获取当天的凌晨时间
// 获取当天的凌晨时间
function getFirstTimeOfDay(date) {
return new Date(date.setHours(0, 0, 0, 0))
}
let firstTime = getFirstTimeOfDay(DayBeforeSixMonths)
console.log(firstTime) // Tue Apr 23 2019 00:00:00 GMT+0800 (中国标准时间)
console.log(formatDate(firstTime)) // 2019-4-23 0:0:0
获取当天23:59:59的时间
// 获取当天23:59:59的时间
function getLastTimeOfDay(date) {
return new Date(new Date(date.toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1)
}
let lastTime = getLastTimeOfDay(DayBeforeSixMonths)
console.log(lastTime) // Tue Apr 23 2019 23:59:59 GMT+0800 (中国标准时间)
console.log(formatDate(lastTime)) // 2019-4-23 23:59:59
console.log(lastTime.toLocaleString()) // 2019/4/23 下午11:59:59
获取本周的周一
//获取本周的周一
function getFirstDayOfWeek(date) {
let weekday = date.getDay() || 7 //获取星期几,getDay()返回值是 0(周日) 到 6(周六) 之间的一个整数。0||7为7,即weekday的值为1-7
date.setDate(date.getDate() - weekday + 1) //往前算(weekday-1)天,年份、月份会自动变化
return this.formatDate(date)
}
获得某月的天数
//获得某月的天数
function getMonthDays(myMonth) {
var monthStartDate = new Date(nowYear, myMonth, 1);
var monthEndDate = new Date(nowYear, myMonth + 1, 1);
var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
return days;
}
获得本季度的开始月份
//获得本季度的开始月份
function getQuarterStartMonth() {
var quarterStartMonth = 0;
if (nowMonth < 3) {
quarterStartMonth = 0;
}
if (2 < nowMonth && nowMonth < 6) {
quarterStartMonth = 3;
}
if (5 < nowMonth && nowMonth < 9) {
quarterStartMonth = 6;
}
if (nowMonth > 8) {
quarterStartMonth = 9;
}
return quarterStartMonth;
}
获得本周的开始日期
//获得本周的开始日期
function getWeekStartDate() {
var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
return formatDate(weekStartDate);
}
获得本周的结束日期
//获得本周的结束日期
function getWeekEndDate() {
var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));
return formatDate(weekEndDate);
}
获得上周的开始日期
//获得上周的开始日期
function getLastWeekStartDate() {
var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 7);
return formatDate(weekStartDate);
}
获得上周的结束日期
//获得上周的结束日期
function getLastWeekEndDate() {
var weekEndDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 1);
return formatDate(weekEndDate);
}
获得本月的开始日期
//获得本月的开始日期
function getMonthStartDate() {
var monthStartDate = new Date(nowYear, nowMonth, 1);
return formatDate(monthStartDate);
}
获得本月的结束日期
//获得本月的结束日期
function getMonthEndDate() {
var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
return formatDate(monthEndDate);
}
获得上月开始日期
//获得上月开始日期
function getLastMonthStartDate() {
var lastMonthStartDate = new Date(nowYear, lastMonth, 1);
return formatDate(lastMonthStartDate);
}
获得上月结束日期
//获得上月结束日期
function getLastMonthEndDate() {
var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth));
return formatDate(lastMonthEndDate);
}
获得本季度的开始日期
//获得本季度的开始日期
function getQuarterStartDate() {
var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
return formatDate(quarterStartDate);
}
获得本季度的结束日期
//获得本季度的结束日期
function getQuarterEndDate() {
var quarterEndMonth = getQuarterStartMonth() + 2;
var quarterStartDate = new Date(nowYear, quarterEndMonth,
getMonthDays(quarterEndMonth));
return formatDate(quarterStartDate);
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。