date获取当前时间年月日_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,获取代码文件(和文中内容一致)

baf83a748d74979babe83678fc05d457.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值