JavaScript日期的4种基本表示方法与格式化技巧

一、创建Date对象
Date对象由新的Date()构造函数创建。有4种方法创建新的日期对象:
new Date()
new Date(year, month, day, hours, minutes, seconds, milliseconds)
new Date(milliseconds)
new Date(date string)
 
1.new Date()
用当前日期和时间创建新的日期对象:
var d = new Date();
日期对象是静态的。计算机时间正在滴答作响,但日期对象不会。
 
2.new Date(year, month, ...)
(1)用指定日期和时间创建新的日期对象。7个数字分别指定年、月、日、小时、分钟、秒和毫秒(按此顺序):
var d = new Date(2018, 11, 24, 10, 33, 30, 0);
JavaScript从0到11计算月份。一月是0。十二月是11。
(2)6个数字指定年、月、日、小时、分钟、秒:
var d = new Date(2018, 11, 24, 10, 33, 30);
(3)5个数字指定年、月、日、小时和分钟:
var d = new Date(2018, 11, 24, 10, 33);
(4)4个数字指定年、月、日和小时:
var d = new Date(2018, 11, 24, 10);
(5)3个数字指定年、月和日:
var d = new Date(2018, 11, 24);
(5)2个数字指定年份和月份:
var d = new Date(2018, 11);
(7)不能省略月份。如果只提供一个参数,则将其视为毫秒。
var d = new Date(2018);
 
3.new Date(milliseconds)
(1)创建一个零时加毫秒的新日期对象,1970年1月1日加上100 000 000 000毫秒,大约是1973年3月3日:
var d = new Date(0);
(2)1970 年1月1日减去100 000 000 000 毫秒大约是1966年10月31日:
var d = new Date(100000000000);
(3)var d = new Date(-100000000000);
(4)一天(24 小时)是86 400 000毫秒。
var d = new Date(86400000);
 
4.new Date(dateString)
(1)从日期字符串创建一个新的日期对象:
var d = new Date("October 13, 2014 11:13:00");
JavaScript将日期存储为毫秒,JavaScript将日期存储为自1970年1月1日00:00:00 UTC(协调世界时)以来的毫秒数。
零时间是1970年1月1日00:00:00 UTC。
现在的时间是1970年1月1日之后的 1554166879383 毫秒。
(2)toUTCString() 方法将日期转换为UTC 字符串(一种日期显示标准)。
var d = new Date();
document.getElementById("demo").innerHTML = d.toUTCString();
(3)toDateString() 方法将日期转换为更易读的格式:
var d = new Date();
document.getElementById("demo").innerHTML = d.toDateString();
 
5.上个世纪
一位和两位数年份将被解释为 19xx 年:
var d = new Date(99, 11, 24);
var d = new Date(9, 11, 24);
 
二、JavaScript日期格式化
 
1.JavaScript ISO日期
ISO8601是表现日期和时间的国际标准。ISO8601语法(YYYY-MM-DD) 也是首选的 JavaScript日期格式:
 
(1)完整日期
var d = new Date("2018-02-19");
计算的日期相对于您的时区。
(2)年和月
var d = new Date("2015-03");
(3)只有年
var d = new Date("2018");
(4)完整的日期加时、分和秒
写日期也可以添加时、分和秒 (YYYY-MM-DDTHH:MM:SS):
var d = new Date("2018-02-19T12:00:00");
(5)日期和时间通过大写字母 T 来分隔。UTC 时间通过大写字母 Z 来定义。如果您希望修改相对于UTC 的时间,请删除 Z 并用 +HH:MM 或 -HH:MM 代替:
var d = new Date("2018-02-19T12:00:00-08:30");
注释:UTC,协调世界时,又称世界统一时间,世界标准时间,国际协调时间。
在日期-时间字符串中省略 T 或 Z,在不同浏览器中会产生不同结果。
 
2.短日期
短日期通常使用 "MM/DD/YYYY" 这样的语法:
var d = new Date("02/19/2018");
 
3.长日期
(1)长日期通常以 "MMM DD YYYY" 这样的语法来写:
var d = new Date("Feb 19 2018");
(2)月和天能够以任意顺序出现:
var d = new Date("19 Feb 2018");
(3)月能够以全称 (January) 或缩写 (Jan) 来写:
var d = new Date("February 19 2018");
var d = new Date("Feb 19 2018");
(4)逗号会被忽略,且对大小写不敏感:
var d = new Date("FEBRUARY, 25, 2015");
 
4.完整日期
(1)JavaScript 接受“完整JavaScript格式”的日期字符串:
var d = new Date("Mon Feb 19 2018 06:55:23 GMT+0100 (W. Europe Standard Time)");
(2)JavaScript会忽略日期名称和时间括号中的错误:
var d = new Date("Fri Mar 26 2018 09:56:24 GMT+0100 (Tokyo Time)");
 
5.时区
在设置日期时,如果不规定时区,则JavaScript会使用浏览器的时区。
当获取日期时,如果不规定时区,则结果会被转换为浏览器时区。
换句话说,假如日期/时间以 GMT(格林威治标准时间)创建,该日期/时间将被转换为 CST(中国标准时间),如果用户从中国进行浏览。