JavaScript Date对象时间处理

目录

    • 释义
    • 语法
    • 获取和设置方法
    • 获取时间
    • 设置时间

释义

Date 对象用来处理时间和日期;
创建一个 JavaScript Date 实例,该实例呈现时间中的某个时刻。Date 对象则基于 Unix Time Stamp,即自 1970 年 1 月 1 日(UTC)起经过的毫秒数。

语法

new Date();
new Date(value);
new Date(dateString);
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);

注:创建一个新Date对象的唯一方法是通过new 操作符,例如:let now = new Date();
若将它作为常规函数调用(即不加 new 操作符),将返回一个字符串,而非 Date 对象。

Date可以通过四种方式(如语法所述)进行构造

  1. 无参 new Date():创建的 Date 对象表示实例化时刻的日期和时间。
  2. Unix时间戳 new Date(value):一个 Unix 时间戳(Unix Time Stamp),它是一个整数值,表示自 1970 年 1 月 1 日 00:00:00 UTC(the Unix epoch)以来的毫秒数,忽略了闰秒。请注意大多数 Unix 时间戳功能仅精确到最接近的秒。
  3. 时间戳字符串 new Date(dateString):表示日期的字符串值。该字符串应该能被 Date.parse() 正确方法识别(即符合 IETF-compliant RFC 2822 timestamps 或 version of ISO8601)。
  4. 日期与时分秒 new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]])
    year表示年份的整数值。
    0 到 99 会被映射至 1900 年至 1999 年,其它值代表实际年份。
    monthIndex
    表示月份的整数值,从 0(1 月)到 11(12 月)。
    date可选
    表示一个月中的第几天的整数值,从 1 开始。默认值为 1。
    hours 可选
    表示一天中的小时数的整数值 (24 小时制)。默认值为 0(午夜)。
    minutes 可选
    表示一个完整时间(如 01:10:00)中的分钟部分的整数值。默认值为 0。
    seconds 可选
    表示一个完整时间(如 01:10:00)中的秒部分的整数值。默认值为 0。
    milliseconds 可选
    表示一个完整时间的毫秒部分的整数值。默认值为 0。

在使用 时间戳字符串 获取Date实例的时候需要注意差异性

由于浏览器之间的差异与不一致性,强烈不推荐使用Date构造函数来解析日期字符串 (或使用与其等价的Date.parse)。对 RFC 2822 格式的日期仅有约定俗成的支持。 对 ISO 8601 格式的支持中,仅有日期的串 (例如 “1970-01-01”) 会被处理为 UTC 而不是本地时间,与其他格式的串的处理不同。

相关标准链接 RFC2822 Section 3.3 && ISO 8601

获取和设置方法

注:非UTC(世界标准时间)

方法 描述 返回值
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 整数
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。 整数
getFullYear() 从 Date 对象以四位数字返回年份。 整数
getHours() 返回 Date 对象的小时 (0 ~ 23)。 整数
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。 整数
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。 整数
getMonth() 从 Date 对象返回月份 (0 ~ 11)。 整数
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。 整数
getTime() 返回从 1970 年 1 月 1 日 0 时 0 分 0 秒至今的毫秒数。 整数
toDateString() 把 Date 对象的日期部分转换为字符串。 字符串
toISOString() 使用 ISO 标准返回字符串的日期格式。 字符串
toJSON() 以 JSON 数据格式返回日期字符串。 字符串
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 字符串
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 字符串
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。 字符串
toString() 把 Date 对象转换为字符串。 字符串
toTimeString() 把 Date 对象的时间部分转换为字符串。 字符串
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 整数或NaN
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
setFullYear() 设置 Date 对象中的年份(四位数字)。
setHours() 设置 Date 对象中的小时 (0 ~ 23)。
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
setMonth() 设置 Date 对象中月份 (0 ~ 11)。
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
setTime() 方法以毫秒设置 Date 对象。

获取时间

/*以当前时间为例子*/
var nowTime = new Date(); 
//Wed Jul 13 2022 22:27:34 GMT+0800 (中国标准时间)
console.log(nowTime.getFullYear());
//2022
console.log(nowTime.getMonth());
//6
console.log(nowTime.getDate());
//13
console.log(nowTime.getHours());
//22
console.log(nowTime.getMinutes());
//27
console.log(nowTime.getSeconds());
//34
console.log(nowTime.getDay());
//3
console.log(nowTime.getTime());
//1657722454269
/*提取到需要的时间数据进行拼接获取需要的数据*/

设置时间

/*修改以获取的当前时间对象,为准确性用已经生成的时间获取新时间*/
var nowTime = new Date('Wed Jul 13 2022 22:27:34 GMT+0800');
console.log(nowTime.setFullYear(2020)+', nowTime:'+nowTime);
//1594650454269, nowTime:Mon Jul 13 2020 22:27:34 GMT+0800 (中国标准时间)
console.log(nowTime.setMonth(5)+', nowTime:'+nowTime);
//1592058454269, nowTime:Sat Jun 13 2020 22:27:34 GMT+0800 (中国标准时间)
console.log(nowTime.setDate(20)+', nowTime:'+nowTime);
//1592663254269, nowTime:Sat Jun 20 2020 22:27:34 GMT+0800 (中国标准时间)
console.log(nowTime.setHours(20)+', nowTime:'+nowTime);
//1592656054269, nowTime:Sat Jun 20 2020 20:27:34 GMT+0800 (中国标准时间)
console.log(nowTime.setMinutes(20)+', nowTime:'+nowTime);
//1592655634269, nowTime:Sat Jun 20 2020 20:20:34 GMT+0800 (中国标准时间)
console.log(nowTime.setSeconds(20)+', nowTime:'+nowTime);
//1592655620269, nowTime:Sat Jun 20 2020 20:20:20 GMT+0800 (中国标准时间)

参考:
1.《Date - JavaScript | MDN》;
2.《JavaScript Date 对象 | 菜鸟教程》;

你可能感兴趣的:(JavaScript,javascript,unix,开发语言,前端,Date)