网站首页 > 技术文章 正文
获取当前时间,格式为: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,获取代码文件(和文中内容一致)
猜你喜欢
- 2024-12-12 各种数据文件时间戳服务解决方案
- 2024-12-12 Python中日期、时间处理Arrow类库如何使用
- 2024-12-12 解决AAC音频编码时间戳的计算问题
- 2024-12-12 python 日期、时间处理,各种日期时间格式/字符串?
- 2024-12-12 一个按时间戳排序导致的 Bug
- 2024-12-12 Python的time模块与datetime模块完整使用方法
- 2024-12-12 JAVA常用时间工具类(LocalDateTime)
- 2024-12-12 Python处理日期时间常用的10个操作
- 2024-12-12 WPS JSA日期时间的填 坑已经都给你们填平了 郑广学JSA880
- 2024-12-12 POSTGRESQL中时间戳的奥秘timestamptz
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)