前言
在前端开发中,日期和时间处理是必不可少的一个部分。JavaScript 提供了很多处理日期和时间的方法,本文将对其进行总结和归纳,希望能对大家有所帮助。
时间戳
在 JavaScript 中,时间戳是一个很常用的概念,它是指从 1970 年 1 月 1 日 00:00:00 UTC 开始的毫秒数。我们可以使用 Date()
对象的 getTime()
方法获取当前时间的时间戳:
var timestamp = new Date().getTime(); // 1563182310638
如果我们想获取某个指定时间的时间戳,可以使用 Date()
对象的 valueOf()
方法:
var timestamp = new Date('2019-07-15 12:00:00').valueOf(); // 1563172800000
日期格式化
在日期显示时,我们通常需要对日期格式进行调整。以下是一些常用的日期格式:
Format | Description |
---|---|
yyyy | 4 位数的年份 |
yy | 2 位数的年份 |
MM | 2 位数的月份(01~12) |
M | 1<del>2 位数的月份(1</del>12) |
dd | 2 位数的日期(01~31) |
d | 1<del>2 位数的日期(1</del>31) |
HH | 2 位数的小时数(00~23) |
H | 1<del>2 位数的小时数(0</del>23) |
hh | 2 位数的小时数(01~12) |
h | 1<del>2 位数的小时数(1</del>12) |
mm | 2 位数的分钟数(00~59) |
m | 1<del>2 位数的分钟数(0</del>59) |
ss | 2 位数的秒数(00~59) |
s | 1<del>2 位数的秒数(0</del>59) |
使用 toLocaleDateString()
方法进行格式化
toLocaleDateString()
方法可以将日期格式化成本地化的字符串,具体支持的格式取决于不同的浏览器和操作系统,常用的格式如下:
var date = new Date('2019-07-15 12:00:00'); var formattedDate = date.toLocaleDateString('zh-Hans-CN', { year: 'numeric', month: '2-digit', day: '2-digit' }); // 2019/07/15
当然,具体的格式化规则可以自由组合和定制,例如:
-- -------------------- ---- ------- --- ---- - --- ---------------- ----------- --- ------------- - ------------------------------------- - ------- ------ ----- ---------- ------ -------- ---- ---------- ----- ---------- ------- ---------- ------- --------- --- -- ---------- --------
使用 moment.js
库进行格式化
moment.js
是一个非常流行的时间日期处理库,它可以大大简化日期格式化的工作,同时还提供了很多方便的功能,例如时区转换和日期计算等。以下是一些常用的格式化规则:
var date = moment('2019-07-15 12:00:00'); var formattedDate = date.format('YYYY/MM/DD'); // 2019/07/15
var date = moment('2019-07-15 12:00:00'); var formattedDate = date.format('YYYY年M月D日 H:mm:ss'); // 2019年7月15日 12:00:00
使用 Date()
对象的方法进行格式化
通常,我们也可以使用 Date()
对象本身提供的方法进行日期格式化,例如:
var date = new Date('2019-07-15 12:00:00'); var year = date.getFullYear(); // 2019 var month = date.getMonth() + 1; // 7 var day = date.getDate(); // 15 var hour = date.getHours(); // 12 var minute = date.getMinutes(); // 0 var second = date.getSeconds(); // 0 var formattedDate = `${year}/${month}/${day}`; // 2019/7/15
需要注意的是,getMonth()
方法返回的是一个从 0 开始的月份值,因此需要加上 1 才能得到实际的月份。
日期计算
在前端开发中,我们有时需要对日期进行计算,例如计算两个日期之间的天数、时间差等。以下是一些常用的日期计算方法:
计算两个日期的时间差
可以使用 getTime()
方法获取两个日期的时间戳,并进行差值计算:
var start = new Date('2019-07-15 00:00:00'); var end = new Date('2019-07-16 12:00:00'); var diff = end.getTime() - start.getTime(); // 129600000
上述计算得到的是两个日期之间的毫秒数差值,可以根据具体需求进行转换。
计算两个日期之间的天数
可以先计算两个日期的毫秒数差值,然后根据一天的毫秒数(1000 x 60 x 60 x 24)进行计算:
var start = new Date('2019-07-15 00:00:00'); var end = new Date('2019-07-20 12:00:00'); var diff = end.getTime() - start.getTime(); // 453600000 var days = Math.floor(diff / (1000 * 60 * 60 * 24)); // 5
计算某个日期之后或之前的日期
可以使用 setTime()
方法设置一个日期之后或之前的日期:
var date = new Date('2019-07-15 00:00:00'); date.setTime(date.getTime() + 10 * 24 * 60 * 60 * 1000); // 2019-07-25 00:00:00
上述代码中,通过将日期的时间戳加上 10 天的毫秒数来实现了日期加法。如果要做日期减法,则只需要将时间戳减去相应的毫秒数即可。
总结
以上,就是 JavaScript 中的日期处理和时间格式化方法的总结。相信这些内容可以帮助你更加轻松地处理日期和时间,同时也可以提高你的前端开发效率和质量。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6461e06b968c7c53b033653e