写在前面的话
当你还在为日期格式之间的相互转换抓耳挠腮时,那么你的福音来了本本片博客主要提供了五中通过原生的JavaScript实现常见的日期格式之间的各种转换,希望能帮助你解决问题
当你被迫从梦中醒来打开电脑,发现原来是在传参的时候日期格式不对,你暴躁的合上电脑心中一万句MMP飘过
- 将字符串日期转换成为 年-月-日 时:分:秒 type=1 为 年-月-日 或 年-月-日 时:分:秒
function dateTimeChange(time, type) {
let DateTime;
if (time) {
let year = time.getFullYear();
let month = time.getMonth() + 1;
let date = time.getDate();
let Time = time.toTimeString().slice(0, 8);
month <= 9 ? month = '0' + month : month;
date <= 9 ? date = '0' + date : date;
if (type === 1) {
return year + '-' + month + '-' + date
} else if(type === 2){
return Time;
}else {
return year + '-' + month + '-' + date + ' ' + Time;
}
} else {
return '日期格式有误'
}
}
- 获取日期固定的日期比如明天,前天,后天
s -2前天 -1昨天 0 今天 1明天 2后天,date 从哪天开始计算 不传默认为今天
function getDateStr(s, date) {
let dd = '';
date ? dd = new Date(date) : dd = new Date();
dd.setDate(dd.getDate() + s);
let y = dd.getFullYear();
let m = dd.getMonth() + 1;
let d = dd.getDate();
let H = dd.getHours();
let M = dd.getMinutes();
let S = dd.getSeconds();
m < 10 ? m = '0' + m : m;
d < 10 ? d = '0' + d : d;
return y + "-" + m + "-" + d+' '+H+':'+M+':'+S;
}
- 日期相减得到天时分 d2-d1 type不传得出结果为天时分秒 0为相减得到的总秒数 1为相减的天数 2为小时数 3为分钟数,可以用来做倒计时
function getJetLag(d1, d2, type) {
let date1 = new Date(d1), date2 = new Date(d2);
let s1 = date1.getTime(), s2 = date2.getTime();
let total = (s2 - s1) / 1000;
let day = parseInt(total / (24 * 60 * 60));//计算整数天数
let afterDay = total - day * 24 * 60 * 60;//取得算出天数后剩余的秒数
let hour = parseInt(afterDay / (60 * 60));//计算整数小时数
let afterHour = total - day * 24 * 60 * 60 - hour * 60 * 60;//取得算出小时数后剩余的秒数
let min = parseInt(afterHour / 60);//计算整数分
let afterMin = total - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数
switch (type) {
case 0:
return total;
case 1:
return day;
case 2:
return hour;
case 3:
return min;
default:
return day + '天' + hour + '小时' + min + '分' + afterMin + '秒';
}
}
5.年月日转换成时间戳 day 向前天数
function formatTimeStamp(day){
var date = new Date();
var y = date.getFullYear();
var m = date.getMonth()+1;
var d = date.getDate();
var timeStamp = new Date(y+'/'+m+'/'+d);
if(day){
if(day==1){
return timeStamp.getTime()-1000*60*60*24+1000*60*60*24-1;
}else{
return timeStamp.getTime()-1000*60*60*24*day-1;
}
}else{
return timeStamp.getTime()
}
}
人生建议
- 日期时间格式的转换在我的工作中使用的频率还是特别高的不断地和后端进行数据交互,就会牵扯到日期的格式,所以大家还是要认认真真的读一下这篇博客
- 日常编写代码一定要加上备注
下期预告–版本管理控制–究竟算是谁动了你的代码??