js怎么时间格式化呢?不知道的小伙伴来看看小编今天的分享吧!
js怎么格式化时间有三种格式:
格式一:2018-1-29-10:34:49
var curr_time = new Date();
Myformatter(curr_time);
function myformatter(date){
var strDate = date.getFullYear()+"-";
strDate += date.getMonth()+1+"-";
strDate += date.getDate()+"-";
strDate += date.getHours()+":";
strDate += date.getMinutes()+":";
strDate += date.getSeconds();
alert("strDate:"+strDate);
return strDate ;
}
格式二: 2018-1-29
function myformatter(date){
var strDate = date.getFullYear()+"-";
strDate += date.getMonth()+1+"-";
strDate += date.getDate();
alert("strDate:"+strDate);
return strDate ;
}
格式三:2018-02-05 (月份和日期小于10的时候,在前面自动加零)
function myformatter(date){
var strDate = date.getFullYear()+"-";
if(date.getMonth()<10){
var s = date.getMonth()+1+"-";
strDate += "0"+s;
}else{
strDate += date.getMonth()+1+"-";
}
if(date.getDate()<10){
strDate += "0"+date.getDate();
}else{
strDate += date.getDate();
}
return strDate ;
}
以上就是小编今天的分享了,希望可以帮助到大家。
JS:处理日期时间,实现格式化的方法与简单封装
获取当前时间,格式为:2020/07/04 17:00(此时此刻)
获取指定时间,格式为:2020/07/05 17:00(一天后,即明天的此时此刻)
1. 创建一个方法,将传入的日期对象处理后,返回指定格式的字符串,先贴上代码:
// 格式化 日期时间function formatDateTime(date = new Date()) { //不传Date则默认当前时间 let year = date.getFullYear(); let month = date.getMonth() 1; let day = date.getDate(); let hour = date.getHours(); let minute = date.getMinutes(); let second = date.getSeconds(); // 不足两位,添“0” month = month < 10 ? "0" month: month; day = day < 10 ? "0" day: day; hour = hour < 10 ? "0" hour: hour; minute = minute < 10 ? "0" minute: minute; second = second < 10 ? "0" second: second; return year "/" month "/" day " " hour ":" minute ":" second;}// 此时此刻let today = formatDateTime();console.log("此时此刻:", today);// 明天的此时此刻let t = new Date().getTime() 60 * 60 * 24 * 1000; //24小时后的时间戳let tomorrow = formatDateTime(new Date(t));console.log("明天的此时此刻:", tomorrow);
2. 代码解析:
formatDateTime():传入Date对象,获取年月日、时分秒,返回处理后的日期时间字符串;
today:调用时不传参,即获取此时此刻的日期字符串;
tomorrow:参数为明天(此时此刻)的日期字符串;
t = new Date().getTime() 60 * 60 * 24 * 1000:当前时间戳 24小时的毫秒值 = 明天(此时此刻)的时间戳,且new Date(t)将时间戳转为Date对象,最终得到明天(此时此刻)的日期字符串。
控制台输出:
此时此刻: 2020/07/04 17:00明天的此时此刻: 2020/07/05 17:00
1. 基于以上思路,再加入多个参数,实现自定义分隔符等,同样先贴出代码:
// 格式化 日期时间function formatDateTime(date = new Date(), p1 = "-", p2 = ":") { let year = date.getFullYear(); let month = date.getMonth() 1; let day = date.getDate(); let hour = date.getHours(); let minute = date.getMinutes(); let second = date.getSeconds(); return [year, month, day].map(formatNumber).join(p1) " " [hour, minute, second].map(formatNumber).join(p2);}// 格式化 日期数字function formatNumber(n) { n = n.toString(); return n[1] ? n: "0" n;}// 此时此刻let today = formatDateTime(undefined, "/");console.log("此时此刻:", today);// 明天的此时此刻let t = new Date().getTime() 60 * 60 * 24 * 1000; //24小时后的时间戳let tomorrow = formatDateTime(new Date(t), "/");console.log("明天的此时此刻:", tomorrow);
2. 代码解析:
formatDateTime():加入分隔符参数,不传则使用默认值;
formatNumber():数字不足两位,在前面补“0”并返回;
today:传入undefined,判断不存在,即使用默认值;
tomorrow:传入自定义的日期对象。
控制台输出:
此时此刻: 2020/07/04 17:00
明天的此时此刻: 2020/07/05 17:00
或者改为箭头函数:
// 格式化 日期时间var formatDateTime = (date = new Date(), p1 = "-", p2 = ":") =>{ let year = date.getFullYear(); let month = date.getMonth() 1; let day = date.getDate(); let hour = date.getHours(); let minute = date.getMinutes(); let second = date.getSeconds(); return [year, month, day].map(formatNumber).join(p1) " " [hour, minute, second].map(formatNumber).join(p2);};// 格式化 日期数字var formatNumber = (n) =>{ n = n.toString(); return n[1] ? n: "0" n;};
私信发送:200704,获取代码文件(和文中内容一致)