获取 当前或某个日期
使用 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小时前
这样的内容。 - 利用日期, 获取运行两个函数之间
经过的毫秒
。
您可以根据自己的情况深入了解~