JS 常见的日期格式处理

今天/昨天/本周的起止日期/上周的起止日期/本月的起止日期/上月的起止日期

var now = new Date() // 当前日期
var nowDayOfWeek = now.getDay() - 1 // 今天本周的第几天
var nowDay = now.getDate() // 当前日
var nowMonth = now.getMonth() // 当前月
var nowYear = now.getFullYear()// 当前年
// 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()


格式化日期

export 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
 }
 // console.log(date)
 return (myyear + '-' + mymonth + '-' + myweekday)
}

获得某月的天数

export 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
}

获得本周的开始日期

export function getWeekStartDate() {
 var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek)
 // console.log()
 return formatDate(weekStartDate)
}

获得本周的结束日期

export function getWeekEndDate() {
 var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek))
 return formatDate(weekEndDate)
}

获得上周的开始日期

export function getLastWeekStartDate() {
 var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 7)
 return formatDate(weekStartDate)
}

获得上周的结束日期

export function getLastWeekEndDate() {
 var weekEndDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 1)
 return formatDate(weekEndDate)
}

获得本月的开始日期

export function getMonthStartDate() {
 var monthStartDate = new Date(nowYear, nowMonth, 1)
 return formatDate(monthStartDate)
}

获得本月的结束日期

export function getMonthEndDate() {
 var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth))
 return formatDate(monthEndDate)
}

获得上月开始时间

export function getLastMonthStartDate() {
 if (lastMonth === 11) {
   var lastMonthStartDate = new Date(nowYear - 1, lastMonth, 1)
 } else {
   lastMonthStartDate = new Date(nowYear, lastMonth, 1)
 }
 return formatDate(lastMonthStartDate)
}

获得上月结束时间

export function getLastMonthEndDate() {
 if (lastMonth === 11) {
   var lastMonthEndDate = new Date(nowYear - 1, lastMonth, getMonthDays(lastMonth))
 } else {
   lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth))
 }
 return formatDate(lastMonthEndDate)
}

作者:苗本尊
链接:https://juejin.im/post/5bf273f7f265da614d08c812
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在数据分析计算中,日期时间类数据是比较特殊的类型,这里我们就来研究一下如何在SPL中使用日期时间类数据。 1日期时...
    小黄鸭呀阅读 4,716评论 0 0
  • 时间真的很奇妙,今天挣扎着起来了,竟然做了不少事情,写日记、看书、洗衣服,才一个小时的时间,看来时间管理不是说说的...
    彭聪阅读 1,342评论 0 0
  • Jupyter Notebook有两种键盘输入模式:编辑模式和命令模式。编辑模式就是在cell中输入代码或文字的模...
    Isolatedland阅读 6,921评论 0 0
  • 1/ 每个人会根据只言片语的局部信息,自行脑补其它内容,来符合自己心中的故事 (narrative) 。而很多脑补...
    21世纪教育家阅读 3,034评论 0 0

友情链接更多精彩内容