二十五岁时我们都一样愚蠢、多愁善感,喜欢故弄玄虚,可如果不那样的话,五十岁时也就不会如此明智。
标题: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)");