日期和时间
- 获取日期和时间
- new Date(); //不带参数 —— 返回当前日期和时间
- new Date(milliseconds); //传入一个时间戳【1970 年 1 月 1 日 UTC+0 之后经过的毫秒数(1/1000 秒)】---返回日期和时间
- new Date("字符串"); //只有一个参数,并且是字符串,那么它会被自动解析。该算法与 Date.parse 所使用的算法相同---返回日期和时间
- new Date(year, month, date, hours, minutes, seconds, ms); //前两个参数是必须的---返回日期和时间
- 访问日期组件
- getFullYear(); //获取年份(4 位数)
- getMonth(); //获取月份,从 0 到 11。
- getDate(); //获取当月的具体日期,从 1 到 31,这个方法名称可能看起来有些令人疑惑。
- getHours(),getMinutes(),getSeconds(),getMilliseconds(); //获取相应的时间组件。
- getDay(); //获取一周中的第几天,从 0(星期日)到 6(星期六)。第一天始终是星期日,在某些国家可能不是这样的习惯,但是这不能被改变。
- 获取时间戳
- getTime(); //返回日期的时间戳 —— 从 1970-1-1 00:00:00 UTC+0 开始到现在所经过的毫秒数。
- + new Date(); // + 转为数字,同 getTime()。
- Date.now(); //返回当前的时间戳。它相当于 new Date().getTime(),但它不会创建中间的 Date 对象。因此它更快,而且不会对垃圾回收造成额外的压力。
- valueOf(); //返回值和方法 Date.getTime 返回的值相等。
- 对字符串调用 Date.parse 获取时间戳
- Date.parse(str); //字符串的格式应该为:YYYY-MM-DDTHH:mm:ss.sssZ。解析给定格式的字符串,并返回时间戳。如果给定字符串的格式不正确,则返回 NaN。
- 字符 "T" 是一个分隔符,可选字符 'Z' 为 +-hh:mm 格式的时区。简短形式也是可以的,比如 YYYY-MM-DD 或 YYYY-MM,甚至可以是 YYYY。
- 比如:let ms = Date.parse('2012-01-26T13:51:50.417-07:00');
- 可以通过时间戳来立即创建一个 new Date 对象:let date = new Date( Date.parse('2012-01-26T13:51:50.417-07:00') );
- 时间差
- getTimezoneOffset(); //返回 UTC 与本地时区之间的时差,以分钟为单位。
- - new Date(); //日期可以相减,相减的结果是以毫秒为单位时间差。
- 设置日期组件
- 没设置的,就是现在的,设置了,自然就会修改。
- setFullYear(year, [month], [date])
- setMonth(month, [date])
- setDate(date)
- setHours(hour, [min], [sec], [ms])
- setMinutes(min, [sec], [ms])
- setSeconds(sec, [ms])
- setMilliseconds(ms)
- setTime(milliseconds)(向 1970/01/01 添加毫秒,并显示新的日期和时间)
- 备足:以上方法除了 setTime() 都有 UTC 变体,例如:setUTCHours()。
- 有些方法可以一次性设置多个组件,未提及的组件不会被修改。
本地格式化
在旧版本浏览器中, locales 和 options 参数被忽略,使用的语言环境和返回的字符串格式是各自独立实现的。
- new Date().toDateString():Thu May 16 2024 【注:把 Date 对象的日期部分转换为字符串】
- new Date().toISOString():2024-05-16T06:36:56.235Z 【注:使用 ISO 标准返回字符串的日期格式】
- new Date().toJSON():2024-05-16T06:37:59.936Z 【注:以 JSON 数据格式返回日期字符串】
- new Date().toLocaleTimeString():14:39:43 【注:根据本地时间格式,把 Date 对象的时间部分转换为字符串】
- new Date().toLocaleString():2024/5/16 14:40:23 【注:根据本地时间格式,把 Date 对象转换为字符串】
- new Date().toString():Thu May 16 2024 14:41:19 GMT+0800 (中国标准时间) 【注:把 Date 对象转换为字符串】
- new Date().toTimeString():14:42:03 GMT+0800 (中国标准时间) 【注:把 Date 对象的时间部分转换为字符串】
- new Date().toUTCString():Thu, 16 May 2024 06:42:57 GMT 【注:根据世界时,把 Date 对象转换为字符串】
字符串格式因不同语言而不同。新增的参数 locales 和 options 使程序能够指定使用哪种语言格式化规则,允许定制该方法的表现(behavior)。