JavaScript 日期格式

  • JavaScript日期输入

    通常有3种类型的JavaScript日期输入格式:
    特征 说明
    ISO格式日期 "2015-03-25" (国际标准)
    短格式日期 "03/25/2015"
    长格式日期 "Mar 25 2015" 或者 "25 Mar 2015"
    ISO格式遵循JavaScript中的严格标准。其他格式定义不太明确,可能是浏览器特定的。
  • JavaScript日期输出

    独立于输入格式,JavaScript将(默认情况下)以全文字符串格式输出日期:
  • JavaScript ISO日期

    ISO 8601是表示日期和时间的国际标准。ISO 8601语法(YYYY-MM-DD)也是首选的JavaScript日期格式:
    var d = new Date("2015-03-25");
    尝试一下
    计算的日期将相对于您的时区。根据您所在的时区,上述结果将在3月24日至3月25日之间变化。
    ISO日期(年和月),可以在不指定日(YYYY-MM)的情况下编写ISO日期:
    var d = new Date("2015-03");
    尝试一下
    时区将在2月28日至3月1日之间改变上述结果。
    ISO日期(仅年份),ISO日期可以没有月份和日(YYYY)写入:
    var d = new Date("2015");
    尝试一下
    时区将在2014年12月31日至2015年1月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(协调世界时)与GMT(格林威治标准时间)相同。
    在日期时间字符串中省略T或Z可以在不同的浏览器中给出不同的结果。
  • 时区

    设置日期时,如果不指定时区,JavaScript将使用浏览器的时区。
    获取日期时,如果不指定时区,结果将转换为浏览器的时区。
    换句话说:如果在GMT(格林威治标准时间)中创建日期/时间,则如果用户从美国中部浏览,则日期/时间将转换为CDT(美国中部夏令时)。
  • JavaScript短日期格式

    短日期使用“MM/DD/YYYY”语法编写,如下所示:
    var d = new Date("03/25/2015");
    尝试一下
    警告!在某些浏览器中,没有前导零的月或日可能会产生错误:
    var d = new Date("2015-3-25");
    “YYYY/MM/DD”的行为未定义。有些浏览器会尝试猜测格式。有些人将返回NaN。
    var d = new Date("2015/03/25");
    “DD-MM-YYYY”的行为也未定义。有些浏览器会尝试猜测格式。有些人将返回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");
    尝试一下
  • 日期输入 - 解析日期

    如果您有一个有效的日期字符串,则可以使用该Date.parse()方法将其转换为毫秒。Date.parse()返回日期和1970年1月1日之间的毫秒数:
    var msec = Date.parse("March 21, 2012");
    document.getElementById("demo").innerHTML = msec;
    尝试一下
    然后,您可以使用毫秒数将其转换为日期对象:
    var msec = Date.parse("March 21, 2012");
    var d = new Date(msec);
    document.getElementById("demo").innerHTML = d;
    尝试一下