获取 当前或某个日期
使用 new Date() 就可以构造当前日期, 如下:
var now_date = new Date()
var now_date_simple = Date.now() // ES5 新增简化方法
如果希望获取某一个特定的日期, 在 Date() 构造函数中提供参数就可以获取某个特定时间的日期:
var olympic_date = new Date(2008, 8) // 即获取一个 2008年8月 的日期数据
获取 日期数据中的年份、月份、小时等
使用 set 和 get 系列的函数可以获取日期中的特定数据,如下:
spacial_date.setFullYear(2008)
spacial_date.getFullYear() // 2008
spacial_date.setMonth(0)
spacial_date.getMonth() // 1月, 月份是 0 ~ 11
spacial_date.setDate(31)
spacial_date.getDate() // 日期是 1 ~ 31
spacial_date.setDay(0)
spacial_date.getDay() // 周一, 星期是 0 ~ 6
spacial_date.setHours(23)
spacial_date.getHours() // 小时 0 ~ 23, 如果超出23则会加日期
spacial_date.setMinutes(59)
spacial_date.getMinutes() // 分钟 0 ~ 59, 超出加小时
spacial_date.setSeconds(59)
spacial_date.getSeconds() // 秒数 0 ~ 59, 同上 ⬆️
spacial_date.setMilliseconds(2)
spacial_date.getMilliseconds() // 毫秒 0 ~ 999, 同上 ⬆️
日期对象 的实现方式
通过这个方法可以获得一个很大的数字, 这代表了 1970年1月1日 到现在过的毫秒数, Date 对象就是这样存储了日期数据:
var time = now_date.getTime()
计算两个日期间的 天数
理解了上面 👆 的代码, 你可以使用这行代码获得 两个日期之间过了多少毫秒:
var start_time = Date(2008, 8)
var end_time = new Date()
var differ = end_time - start_time
得到了毫秒, 也就可以推出相差的 小时 & 分钟 了:
var seconds = differ / 1000
var minutes = seconds / 60
var hours = minutes / 60
var days = hours / 24
计算两个日期间的 月数
按照上面的方法也可以计算相差几个月, 但是会变得麻烦起来, 另一个思路 是通过上上面的 👆 获取年月份来进行计算:
var differ_year = end_time.getFullYear() - start_time.getFullYear()
var differ_month = end_time.getMonth() - start_time.getMonth()
var real_differ_month = differ_year * 12 + differ_month // 正确的数值 🌿
更多关于数值、字符串的技巧
JS 中的 Date 最早来自包 java.util.Date, 利用上面的实例方法配合 JS 的数值、字符串转换技巧, 你可以针对需求进行特殊的操作, 例如:
- 将日期转换成一种特定格式输出。
- 根据日期之间的差, 显示出
刚刚,3分钟前,2小时前这样的内容。 - 利用日期, 获取运行两个函数之间
经过的毫秒。
您可以根据自己的情况深入了解~
本文详细讲解了JavaScript中如何获取当前日期、指定日期的组件设置,以及日期间差的计算方法。包括年份、月份、小时等获取和设置,以及通过毫秒差计算天数、月数的实用技巧。同时介绍了结合数值和字符串操作的高级应用。

被折叠的 条评论
为什么被折叠?



