JavaScript日期格式化


JavaScript 日期输入

通常有4种类型的JavaScript日期输入格式:

类型 实例
ISO 日期 "2015-03-25" (The International Standard)
短 日期 "03/25/2015"
长 日期 "Mar 25 2015" or "25 Mar 2015"
全 日期 "Wednesday March 25 2015"

JavaScript ISO 格式是一个严格标准格式.

其他格式没有很好定义,可能是浏览器特定的.


JavaScript日期输出

相对输入格式, JavaScript将(默认)全文本字符串格式输出数据:

Wed Mar 25 2015 08:00:00 GMT+0800 (中国标准时间)

JavaScript ISO 日期

ISO 是代表日期和时间的国际标准.

ISO 8601 语法 (YYYY-MM-DD) 也是首选的JavaScript日期格式:

<p id="demo"></p>

<script>
var d = new Date("2015-03-25");
</script>

让我试试

计算日期将相对你的时区. 根据您的时区,上述结果将在3月24日和3月25日之间有所不同.


ISO 日期 (年和月)

ISO 日期可以写成不指定日的格式,只有年和月(YYYY-MM):

var d = new Date("2015-03");

让我试试

时区将在2月28日和3月1日之间改变结果.


ISO 日期 (只有年)

ISO 日期能写成没有年和月的格式,只有年(YYYY):

var d = new Date("2015");

让我试试

时区将在2014 12月31日至20151月1日之间改变结果.


ISO 日期 (日期-时间)

ISO 日期能写成带小时,分钟和秒的格式 (YYYY-MM-DDTHH:MM:SSZ):

var d = new Date("2015-03-25T12:00:00Z");

让我试试

日期和时间之间用大写T分隔开.

UTC 时间定义为大写字母Z.

如果你想修改时间相对于UTC, 删除Z并且添加 +HH:MM 或者 -HH:MM 代替:

var d = new Date("2015-03-25T12:00:00-06:30");

让我试试

UTC (Universal Time Coordinated) 和 GMT (Greenwich Mean Time)相同. 在日期时间字符串中 忽略 T 或者 Z 在不同浏览器中将产生不同的结果。


时区

设定一个日期时,没有指定时区,JavaScript会使用浏览器的时区.

在不指定时区的情况下获取日期时,结果将转换为浏览器的时区.

换句话说:如果一个日期/时间是建立在格林威治标准时间(格林尼治标准时间),如果用户浏览来自美国中部,日期/时间将转换为CDT(美国中部夏令时间).


JavaScript 短日期.

短日期用这样的语法格式 "MM/DD/YYYY" 像这样:

var d = new Date("03/25/2015");

让我试试


警告 !

在一些浏览器,几个月或几天没有前导零可能会产生一个错误:

var d = new Date("2015-3-25");

"YYYY/MM/DD" 是 undefined. 一些浏览器会尝试猜测格式。有些将会返回NaN.

var d = new Date("2015/03/25");

"DD-MM-YYYY" 也是 undefined. 一些浏览器会尝试猜测格式。有些将会返回NaN.

var d = new Date("25-03-2015");

JavaScript 长日期.

长日期经常用这样的语法格式 "MMM DD YYYY" 像这样:

var d = new Date("Mar 25 2015");

让我试试

月和日可以按任意顺序:

var d = new Date("25 Mar 2015");

让我试试

而且,月可以写全(January),或缩写(Jan)

var d = new Date("January 25 2015");

让我试试

var d = new Date("Jan 25 2015");

让我试试

逗号被忽略。名称不区分大小写:

var d = new Date("JANUARY, 25, 2015");

让我试试


JavaScript 全日期

JavaScript将接受日期字符串用 "全日期 JavaScript 格式":

var d = new Date("Wed Mar 25 2015 09:56:24 GMT+0100 (W. Europe Standard Time)");

让我试试

JavaScript将忽略天的名字错误和在括号里的时间错误

var d = new Date("Fri Mar 25 2015 09:56:24 GMT+0100 (Tokyo Time)");

让我试试