实现js当前时间加一天 js中国标准时间格式转换

序虽然已经有成熟易用的日期处理库,比如momentjs和date-fns,但是在实际开发中,我们有时候并不需要整个库。于是我在下面整理了一下前端开发中日期和时间的各种操作,比较完整。一部分来自我自己,一部分来自我们万能的网友~获取当前时间戳。var timestamp = Date.parse(new...

虽然已经有成熟易用的日期处理库,比如momentjs和date-fns,但是在实际开发中,我们有时候并不需要整个库。于是我在下面整理了一下前端开发中日期和时间的各种操作,比较完整。一部分来自我自己,一部分来自我们万能的网友~

获取当前时间戳。

var timestamp = Date.parse(new Date()); //精确到秒var timestamp = (new Date()).valueOf(); //精确到毫秒var timestamp = new Date().getTime(); //精确到毫秒var timestamp = +new Date();var timestamp = Date.now();

获取指定的时间戳

var timestamp = (new Date(" 2019/10/24 08:00:00")).getTime();var timestamp = (new Date(" 2019-10-24 08:00:00")).getTime();

获取当前时间之前/之后一天的时间戳。

var timestamp = +new Date() - 24*60*60*1000;var timestamp = +new Date() + 24*60*60*1000;

今天的零时戳

var timestamp = new Date(new Date().toLocaleDateString()).getTime();

今天最晚时间的时间戳为23:59:59

let timestamp = new Date(new Date().toLocaleDateString()).getTime()+24*60*60*1000-1;

n天后获取当前时间的时间戳。

/** * @param {number} n 天数 * @returns {Number} 返回值为时间毫秒值 */function toNextTimes(n){ let timestamp = +new Date() + n * 8***00000; return timestamp;}

本周的第一天

/*** * @return {*} WeekFirstDay 返回本周第一天的时间 */function showWeekFirstDay(){ let Nowdate=new Date(); let WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*8***00000); return WeekFirstDay;}

一周的最后一天

/*** * @return {*} WeekLastDay 返回本周最后一天的时间 */function showWeekLastDay(){ let Nowdate=new Date(); let WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*8***00000); let WeekLastDay=new Date((WeekFirstDay/1000+6*8***00)*1000); return WeekLastDay;}

这个月的第一天

/*** * @return {*} MonthFirstDay 返回本月第一天的时间 */function showMonthFirstDay(){ let Nowdate=new Date(); let MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()); return MonthFirstDay;}

这个月的最后一天

/*** * @return {*} MonthLastDay 返回本月最后一天的时间 */function showMonthLastDay(){ let Nowdate=new Date(); let MonthNextFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()+1); let MonthLastDay=new Date(MonthNextFirstDay-8***00000); return MonthLastDay;}

日期到时间戳

/** * @param {String} time - 日期字符串,如'2018-8-8','2018,8,8','2018/8/8' * @returns {Number} 返回值为时间毫秒值 */function timeToTimestamp (time) { let date = new Date(time); let timestamp = date.getTime(); return timestamp;}

格式化当前时间

/*** * @return {string} timeText 返回系统时间字符串 */function getdataTimeSec() { let time = new Date(); let weekDay; let year = time.getFullYear(); let month = time.getMonth() + 1; let day = time.getDate(); //获取时分秒 let h = time.getHours(); let m = time.getMinutes(); let s = time.getSeconds(); //检查是否小于10 h = check(h); m = check(m); s = check(s); let now_day = time.getDay(); switch (now_day) { case 0: { weekDay = "星期日" } break; case 1: { weekDay = "星期一" } break; case 2: { weekDay = "星期二" } break; case 3: { weekDay = "星期三" } break; case 4: { weekDay = "星期四" } break; case 5: { weekDay = "星期五" } break; case 6: { weekDay = "星期六" } break; case 7: { weekDay = "星期日" } break; } let timeText = year + "年" + month + "月" + day + "日 " + " " + weekDay + " " + h + ":" + m +":" + s; return timeText}

指定时间戳之间的时间间隔。

/** * @param {*} startTime 开始时间的时间戳 * @param {*} endTime 结束时间的时间戳 * @return {string} str 返回时间字符串 */function getTimeInterval(startTime, endTime) { let runTime = parseInt((endTime - startTime) / 1000); let year = Math.floor(runTime / 8***00 / 365); runTime = runTime % (8***00 * 365); let month = Math.floor(runTime / 8***00 / 30); runTime = runTime % (8***00 * 30); let day = Math.floor(runTime / 8***00); runTime = runTime % 8***00; let hour = Math.floor(runTime / 3600); runTime = runTime % 3600; let minute = Math.floor(runTime / 60); runTime = runTime % 60; let second = runTime; let str = ''; if (year > 0) { str = year + '年'; } if (year <= 0 && month > 0) { str = month + '月'; } if (year <= 0 && month <= 0 && day > 0) { str = day + '天'; } if (year <= 0 && month <= 0 && day <= 0 && hour > 0) { str = hour + '小时'; } if (year <= 0 && month <= 0 && day <= 0 && hour <= 0 && minute > 0) { str = minute + '分钟'; } if (year <= 0 && month <= 0 && day <= 0 && hour <= 0 && minute <= 0 && second > 0) { str += second + '秒'; } str += '前'; return str;}

按类型设置日期格式

/** * @param {*} date 具体日期变量 * @param {string} dateType 需要返回类型 * @return {string} dateText 返回为指定格式的日期字符串 */function getFor***tDate(date, dateType) { let dateObj = new Date(date); let month = dateObj.getMonth() + 1; let strDate = dateObj.getDate(); let hours = dateObj.getHours(); let minutes = dateObj.getMinutes(); let seconds = dateObj.getSeconds(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } if (hours >= 0 && hours <= 9) { hours = "0" + hours } if (minutes >= 0 && minutes <= 9) { minutes = "0" + minutes } if (seconds >= 0 && seconds <= 9) { seconds = "0" + seconds } let dateText = dateObj.getFullYear() + '年' + (dateObj.getMonth() + 1) + '月' + dateObj.getDate() + '日'; if (dateType == "yyyy-mm-dd") { dateText = dateObj.getFullYear() + '-' + (dateObj.getMonth() + 1) + '-' + dateObj.getDate(); } if (dateType == "yyyy.mm.dd") { dateText = dateObj.getFullYear() + '.' + (dateObj.getMonth() + 1) + '.' + dateObj.getDate(); } if (dateType == "yyyy-mm-dd MM:mm:ss") { dateText = dateObj.getFullYear() + '-' + month + '-' + strDate + ' ' + hours + ":" + minutes + ":" + seconds; } if (dateType == "mm-dd MM:mm:ss") { dateText = month + '-' + strDate + ' ' + hours + ":" + minutes + ":" + seconds; } if (dateType == "yyyy年mm月dd日 MM:mm:ss") { dateText = dateObj.getFullYear() + '年' + month + '月' + strDate + '日' + ' ' + hours + ":" + minutes + ":" + seconds; } return dateText; }

确定是否是闰年。

/*** @param {number} year 要判断的年份* @return {boolean} 返回布尔值*/function leapYear(year) { return !(year % (year % 100 ? 4 : 400));}

返回两年之间的闰年。

/*** @param {number} start 开始年份* @param {number} end 结束年份* @return {array} arr 返回符合闰年的数组*/function leapYears(start, end) { let arr = []; for (var i=start; i<end; i++) { if ( leapYear(i) ) { arr.push(i) } } return arr}

确定时间格式是否有效。

/*** 短时间,如 (10:24:06)* @param {string} str 需要验证的短时间* @return {boolean} 返回布尔值*/function isTime(str) { var a = str.***tch(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); if (a == null) { return false; } if (a[1] >= 24 || a[3] >= 60 || a[4] >= 60) { return false } return true;}/*** 短日期,形如 (2019-10-24)* @param {string} str 需要验证的短时间* @return {boolean} 返回布尔值*/function strDateTime(str){ var result = str.***tch(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); if (result == null) return false; var d = new Date(result[1], result[3] - 1, result[4]); return (d.getFullYear() == result[1] && d.getMonth() + 1 == result[3] && d.getDate() == result[4]);}/*** 长日期时间,形如 (2019-10-24 10:24:06)* @param {string} str 需要验证的短时间* @return {boolean} 返回布尔值*/function strDateTime(str){ var result = str.***tch(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/); if (result == null) return false; var d = new Date(result[1], result[3] - 1, result[4], result[5], result[6], result[7]); return (d.getFullYear() == result[1] && (d.getMonth() + 1) == result[3] && d.getDate() == result[4] && d.getHours() == result[5] && d.getMinutes() == result[6] && d.getSeconds() == result[7]);}

验证日期大小

/*** 例:"2019-10-24" 和 "2019-10-25"* @param {string} d1需要验证的日期1* @param {string} d2需要验证的日期2* @return {boolean} 返回布尔值*/function compareDate(d1, d2) { return ((new Date(d1.replace(/-/g, "\/"))) < (new Date(d2.replace(/-/g, "\/"))));}

验证日期是今天。

/*** @param {string} val 需要验证的日期* @return {boolean} 返回布尔值*/function isToday(val){ return new Date().toLocaleDateString() == new Date(val).toLocaleDateString();}

验证接收日期是昨天。

/*** @param {string} val 需要验证的日期* @return {boolean} 返回布尔值*/function isYesterday(val) { var today = new Date(); var yesterday = new Date(now - 1000 * 60 * 60 * 24); var test = new Date(val); if (yesterday.getYear() === test.getYear() && yesterday.getMonth() === test.getMonth() && yesterday.getDate() === test.getDate()) { return true; } else { return false; }}

几天后确定日期。

/*** @param {string} date 起始日期* @param {number} day 向后的天数* @return {string} 返回想要得到的日期*/function convertDate (date, day) { let tempDate = new Date(date); tempDate.setDate(tempDate.getDate()+day); let Y = tempDate.getFullYear(); let M = tempDate.getMonth()+1 < 10 ? '0'+(tempDate.getMonth()+1) : tempDate.getMonth()+1; let D = tempDate.getDate() < 10 ? '0'+(tempDate.getDate()) : tempDate.getDate(); let result = Y + "-" + M + "-" + D return result;}

写在最后

如果上面的函数有错误,或者你在工作中遇到,但是上面没有写,请指出来~

本文来自转身以后投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/497802.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 04-10
下一篇 04-10

相关推荐

  • 三字加一笔有哪些字 三字加一笔的汉字大全

    1.有哪些汉字可以由“日”字加一幅图组成?老、旦、白、田、申、典、穆、阿、尤、、潘、2.有哪些汉字可以由“王”字加一幅图组成?玉、苏、嘎、秋、寿、武、丑、毛3.有哪些汉字可以由“木”字加一张图组成?我,本,莫,魏,蜀,扎,昌,蜀(蜀)4.有哪些汉字可以由“一”字加一

    2023-07-20 11:59:01
    948 0
  • 空调多久加一次氟 老师傅教你判断空调缺氟的5字诀

    气温逐渐升高,对于怕热的人来说,夏天还得靠空来续命。那么空音的使用寿命有多长呢?空音的官方寿命是8-10年,但这个寿命不是绝对的,还和以下几个因素有关。1.使用频率北方时间短,冬天有暖气。一年后空音的使用频率很低,空音的使用寿命自然更高。而南方夏天时间长,冬天没

    2023-07-03 12:19:01
    1026 0
  • 旧字加一笔是什么字 旧只字加一笔变成哪些字

    什么是带笔画的旧字,什么是带笔画的旧字?如果直接加一个和,最合适的就是“阳”。如果让你躺着加一笔,可以有“早”“百”。如果允许不太严格的附加,可以有“许”。如果让你加两笔,很多字都行。比如:丹神伯,因为你手旁边的字很多。面试是每个求职者都会面临的事情。随着

    2023-06-20 02:38:01
    836 0
  • 人字加一笔能写几个字?(老教师也只能写出5个)

    019.& 人加一个字写九个字,分别是:大,和,八,晚,亿,五,七,五,八。汉字主要有象形、指事、会意、形声字、音译、借字六种造字方法,并在前四种的基础上,用不同的偏旁部首组成不同的汉字,可以形成上百种不同的字。汉字主要有象形、指事、会意、形声字、音译、借字六种

    2023-06-07 16:14:01
    411 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信