首页 > 其他 > 详细

Date函数

时间:2020-02-12 11:16:51      阅读:63      评论:0      收藏:0      [点我收藏+]

默认情况下,JavaScript 将使用浏览器的时区并将日期显示为全文本字符串:

Tue Apr 02 2019 09:01:19 GMT+0800 (中国标准时间)

稍后,您将在本教程学到更多关于如何显示日期的知识。

一、创建 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()

new Date() 用当前日期和时间创建新的日期对象:日期对象是静态的。计算机时间正在滴答作响,但日期对象不会。

var d = new Date();

2、new Date(year, month, ...)

new Date(year, month, ...) 用指定日期和时间创建新的日期对象。

7个数字分别指定年、月、日、小时、分钟、秒和毫秒(按此顺序):

var d = new Date(2018, 11, 24, 10, 33, 30, 0);

注释:JavaScript 从 0 到 11 计算月份。

一月是 0。十二月是11。

6个数字指定年、月、日、小时、分钟、秒:

var d = new Date(2018, 11, 24, 10, 33, 30);

5个数字指定年、月、日、小时和分钟:

var d = new Date(2018, 11, 24, 10, 33);

4个数字指定年、月、日和小时:

var d = new Date(2018, 11, 24, 10);

3 个数字指定年、月和日:

var d = new Date(2018, 11, 24);

2个数字指定年份和月份:

var d = new Date(2018, 11);

您不能省略月份。如果只提供一个参数,则将其视为毫秒。

var d = new Date(2018);

一位和两位数年份将被解释为 19xx 年:

var d = new Date(99, 11, 24);
var d = new Date(9, 11, 24);

3、new Date(dateString)

new Date(dateString) 从日期字符串创建一个新的日期对象:

var d = new Date("October 13, 2014 11:13:00");

4、new Date(milliseconds)

JavaScript 将日期存储为自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来的毫秒数。

零时间是 1970 年 1 月 1 日 00:00:00 UTC。

现在的时间是:1970 年 1 月 1 日之后的 1554166879383 毫秒。

new Date(milliseconds) 创建一个零时加毫秒的新日期对象:

var d = new Date(0);

1970年 1 月 1 日加上100 000 000 000毫秒,大约是 1973 年 3 月 3 日:

var d = new Date(100000000000);

1970 年 1 月 1 日减去 100 000 000 000 毫秒大约是 1966 年 10 月 31 日:

var d = new Date(-100000000000);

一天(24 小时)是 86 400 000 毫秒。

var d = new Date(86400000);

二、显示日期

JavaScript(默认情况下)将以全文本字符串格式输出日期:

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

在 HTML 中显示日期对象时,会使用 toString() 方法自动转换为字符串。

d = new Date();
document.getElementById("demo").innerHTML = d;
//等同于:
d = new Date();
document.getElementById("demo").innerHTML = d.toString();

toUTCString() 方法将日期转换为 UTC 字符串(一种日期显示标准)。

var d = new Date();
document.getElementById("demo").innerHTML = d.toUTCString();

toDateString() 方法将日期转换为更易读的格式:

var d = new Date();
document.getElementById("demo").innerHTML = d.toDateString();

有四种 JavaScript 日期输入格式:

  • ISO 日期:"2018-02-19" (国际标准)
  • 短日期:"02/19/2018" 或者 "2018/02/19"
  • 长日期:"Feb 19 2018" 或者 "19 Feb 2019"
  • 完整日期:"Monday February 25 2015"

ISO 格式遵守 JavaScript 中的严格标准。

其他格式不太明确,可能是浏览器特定的。

JavaScript 日期输出

无论输入格式如何,JavaScript 默认将输出全文本字符串格式:

Mon Feb 19 2018 06:00:00 GMT+0800 (中国标准时间)

JavaScript ISO 日期

ISO 8601 是表现日期和时间的国际标准。

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

实例(完整日期)

var d = new Date("2018-02-19");

计算的日期相对于您的时区。

根据您的时区,上面的结果将在 2 月 18 日至 2 月 19 日之间变化。

ISO 日期(年和月)

写日期也可以不规定具体某日 (YYYY-MM):

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

亲自试一试

时区会对结果在 2 月 28 日至 3 月 1 日之间产生变化。

ISO 日期(只有年)

写日期也可以不规定具体的月和日 (YYYY):

var d = new Date("2018");

时区会对结果在 2017 年 12 月 31 日至 2018 年 1 月 1 日之间产生变化。

ISO 日期(完整的日期加时、分和秒)

写日期也可以添加时、分和秒 (YYYY-MM-DDTHH:MM:SS):

var d = new Date("2018-02-19T12:00:00");

日期和时间通过大写字母 T 来分隔。

UTC 时间通过大写字母 Z 来定义。

如果您希望修改相对于 UTC 的时间,请删除 Z 并用 +HH:MM 或 -HH:MM 代替:

var d = new Date("2018-02-19T12:00:00-08:30");

UTC(Universal Time Coordinated)等同于 GMT(格林威治时间)。

注释:UTC,协调世界时,又称世界统一时间,世界标准时间,国际协调时间。

在日期-时间字符串中省略 T 或 Z,在不同浏览器中会产生不同结果。

时区

在设置日期时,如果不规定时区,则 JavaScript 会使用浏览器的时区。

当获取日期时,如果不规定时区,则结果会被转换为浏览器时区。

换句话说,假如日期/时间以 GMT(格林威治标准时间)创建,该日期/时间将被转换为 CST(中国标准时间),如果用户从中国进行浏览。

JavaScript 短日期

短日期通常使用 "MM/DD/YYYY" 这样的语法:

var d = new Date("02/19/2018");

警告

在某些浏览器中,不带前导零的月或其会产生错误:

var d = new Date("2018-2-19");

“YYYY / MM / DD”的行为未定义。

有些浏览器会尝试猜测格式。有些会返回 NaN。

var d = new Date("2018/02/19");

“DD-MM-YYYY”的行为也是未定义的。

有些浏览器会尝试猜测格式。有些会返回 NaN。

var d = new Date("19-02-2018");

JavaScript 长日期

长日期通常以 "MMM DD YYYY" 这样的语法来写:

var d = new Date("Feb 19 2018");

月和天能够以任意顺序出现:

var d = new Date("19 Feb 2018");

并且,月能够以全称 (January) 或缩写 (Jan) 来写:

var d = new Date("February 19 2018");
var d = new Date("Feb 19 2018");

逗号会被忽略,且对大小写不敏感:

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

JavaScript 完整日期

JavaScript 接受“完整 JavaScript 格式”的日期字符串:

var d = new Date("Mon Feb 19 2018 06:55:23 GMT+0100 (W. Europe Standard Time)");

JavaScript 会忽略日期名称和时间括号中的错误:

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

日期方法允许您获取并设置日期值(年、月、日、时、分、秒、毫秒)

日期获取方法

获取方法用于获取日期的某个部分(来自日期对象的信息)。下面是最常用的方法(以字母顺序排序):

  • getDate():以数值返回天(1-31)
  • getDay():以数值获取周名(0-6)
  • getFullYear():获取四位的年(yyyy)
  • getHours():获取小时(0-23)
  • getMilliseconds():获取毫秒(0-999)
  • getMinutes():获取分(0-59)
  • getMonth():获取月(0-11)
  • getSeconds():获取秒(0-59)
  • getTime():获取时间(从 1970 年 1 月 1 日至今)

getTime() 方法

getTime() 方法返回自 1970 年 1 月 1 日以来的毫秒数:

var d = new Date();
document.getElementById("demo").innerHTML = d.getTime();

getFullYear() 方法

getFullYear() 方法以四位数字形式返回日期年份:

var d = new Date();
document.getElementById("demo").innerHTML = d.getFullYear();

getMonth() 方法

getMonth() 以数字(0-11)返回日期的月份:

var d = new Date();
document.getElementById("demo").innerHTML = d.getMonth();

在 JavaScript 中,第一个月(1 月)是月号 0,因此 12 月返回月号 11。

您可以使用名称数组,并使用 getMonth() 将月份作为名称返回:

var d = new Date();
var months = 
            [
            "January", "February", "March", "April", "May", "June", 
            "July", "August", "September", "October", "November", "December"
            ];
document.getElementById("demo").innerHTML = months[d.getMonth()];

getDate() 方法

getDate() 方法以数字(1-31)返回日期的日:

var d = new Date();
document.getElementById("demo").innerHTML = d.getDate();

getHours() 方法

getHours() 方法以数字(0-23)返回日期的小时数:

var d = new Date();
document.getElementById("demo").innerHTML = d.getHours();

getMinutes() 方法

getMinutes() 方法以数字(0-59)返回日期的分钟数:

var d = new Date();
document.getElementById("demo").innerHTML = d.getMinutes();

getSeconds() 方法

getSeconds() 方法以数字(0-59)返回日期的秒数:

var d = new Date();
document.getElementById("demo").innerHTML = d.getSeconds();

getMilliseconds() 方法

getMilliseconds() 方法以数字(0-999)返回日期的毫秒数:

var d = new Date();
document.getElementById("demo").innerHTML = d.getMilliseconds();

getDay() 方法

getDay() 方法以数字(0-6)返回日期的星期名(weekday):

var d = new Date();
document.getElementById("demo").innerHTML = d.getDay();

在 JavaScript 中,一周的第一天(0)表示“星期日”,即使世界上的一些国家认为周的第一天是“星期一”。

您可以使用名称数组,并使用 getDay() 将星期名作为名称返回:

var d = new Date();
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
document.getElementById("demo").innerHTML = days[d.getDay()];

使用“设置日期”方法可以设置日期对象的日期值(年、月、日、小时、分钟、秒、毫秒)。

日期设置方法

设置方法用于设置日期的某个部分。下面是最常用的方法(按照字母顺序排序):

  • setDate():以数值(1-31)设置日
  • setFullYear():设置年(可选月和日)
  • setHours():设置小时(0-23)
  • setMilliseconds():设置毫秒(0-999)
  • setMinutes():设置分(0-59)
  • setMonth():设置月(0-11)
  • setSeconds():设置秒(0-59)
  • setTime():设置时间(从 1970 年 1 月 1 日至今的毫秒数)

setFullYear() 方法

setFullYear() 方法设置日期对象的年份。这个例子设置为 2020 年:

var d = new Date();
d.setFullYear(2020);
document.getElementById("demo").innerHTML = d;

setFullYear() 方法可以选择设置月和日:

var d = new Date();
d.setFullYear(2020, 11, 3);
document.getElementById("demo").innerHTML = d;

setMonth() 方法

setMonth() 方法设置日期对象的月份(0-11):

var d = new Date();
d.setMonth(11);
document.getElementById("demo").innerHTML = d;

setDate() 方法

setDate() 方法设置日期对象的日(1-31):

var d = new Date();
d.setDate(15);
document.getElementById("demo").innerHTML = d;

setDate() 方法也可用于将天数添加到日期:

var d = new Date();
d.setDate(d.getDate() + 50);
document.getElementById("demo").innerHTML = d;

如果添加天数,切换月份或年份,则更改将由 Date 对象自动处理。

setHours() 方法

setHours() 方法设置日期对象的小时(0-23):

var d = new Date();
d.setHours(22);
document.getElementById("demo").innerHTML = d;

setMinutes() 方法

setMinutes() 方法设置日期对象的分钟(0-59):

var d = new Date();
d.setMinutes(30);
document.getElementById("demo").innerHTML = d;

setSeconds() 方法

setSeconds() 方法设置日期对象的秒数(0-59):

var d = new Date();
d.setSeconds(30);
document.getElementById("demo").innerHTML = d;

比较日期

日期可以很容易地进行比较。

下面的例子把今日与 2049 年 1 月 16 日进行比较:

var today, someday, text;
today = new Date();
someday = new Date();
someday.setFullYear(2049, 0, 16);

if (someday > today) {
  text = "今天在 2049 年 1 月 16 日之前";
} else {
  text = "今天在 2049 年 1 月 16 日之后";
}
document.getElementById("demo").innerHTML = text;

JavaScript 从 0 到 11 计数月份。1 月是 0。12 月是 11。

Date函数

原文:https://www.cnblogs.com/springsnow/p/12298122.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!