JavaScript基础教程

JavaScript 对象

JavaScript 函数

JS HTML DOM

JS 浏览器BOM

AJAX 基础教程

JavaScript 参考手册

JavaScript 日期(Date)

JavaScript的日期和时间

JavaScript日期对象使我们可以处理日期。

在JavaScript中,您可能想创建一个带有日历,火车时刻表或用于设置约会的界面的网站。

这些应用程序需要根据用户的当前时区显示对应时间。

Fri Jan 03 2020 11:10:54 GMT+0800 (中国标准时间)

日期对象

Date对象是在JavaScript内置的对象存储日期和时间。

它提供了许多用于格式化和管理数据的内置方法。

日期对象是使用new Date()构造函数创建的。

let now = new Date();// 将变量设置为当前日期和时间
测试看看‹/›

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

创建日期对象

有四种创建新日期对象的方法。

您可以使用以下任何语法使用new Date()构造函数创建Date对象。

  new Date();
  new Date(milliseconds);
  new Date(dateString);
  new Date(year, month, day, hours, minutes, seconds, milliseconds);

new Date()

在new Date()创建与当前日期和时间新的日期对象:

let d = new Date();
测试看看‹/›

new Date()(milliseconds)

会创建一个新的日期对象,该对象为零时间加上毫秒:new Date(milliseconds)

let d = new Date(0);
测试看看‹/›

JavaScript根据从Unix时间得出的时间戳来理解日期,该时间戳由1970年1月1日午夜以来经过的毫秒数组成。

1970年1月1日加上252 4600000000毫秒大约是2050年1月1日:

let d = new Date(2524600000000);
测试看看‹/›

new Date(dateString)

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

let d = new Date("July 30 1992 18:30");
测试看看‹/›

new Date(year, month, ...)

将创建一个具有指定日期和时间新的日期对象:new Date(year, month, ...)

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

let d = new Date(2019, 0, 26, 10, 40, 30, 0);
测试看看‹/›

在上面的示例中,我们的秒和毫秒设置为30和0。

如果创建日期缺少任何数字,则默认为0。

但是,顺序不能更改,因此,如果您决定省略一个数字,请记住这一点。

您可能还会注意到,一月的月份用0表示,而不是通常的1。

这是因为日期和时间数字从0开始,就像编程中的大多数计数一样。

JavaScript的月份从0到11。一月是0,十二月是11。

日期方法

创建Date对象时,可以使用多种方法对其进行操作。

使用日期方法,您可以使用本地时间或UTC(通用或GMT)时间来获取设置日期,年,月,日,时,分,秒和毫秒。

检索(获取)日期

有了对象日期后,就可以使用各种内置方法访问日期的所有组件。

这些方法将返回相对于当地时区的日期的每个部分。

这些方法中的每一个都以get开头,并将返回相对编号。

下表是Date对象的get方法的表:

方法Date/Time范围(Range)
getFullYear()根据本地时间返回指定日期对象的年份(四位数年份时返回四位数字:YYYY)。
getMonth()根据本地时间返回指定日期对象的月份(0-11),(0=一月)。
getDate()第几天(当月)根据本地时间返回指定日期对象的月份中的第几天(1-31)。
getDay()一周中的第几天根据本地时间返回指定日期对象的一周中的第几天(0-6),(0 =星期日)。
getHours()小时根据本地时间返回指定日期对象的小时(0-23)。
getMinutes()分钟根据本地时间返回指定日期对象的分钟(0-59)。
getSeconds()根据本地时间返回指定日期对象的秒数(0-59)。
getMilliseconds()毫秒根据本地时间返回指定日期对象的毫秒(0-999)。
getTime()时间戳

返回从1970-1-1 00:00:00 UTC(协调世界时)到该日期经过的毫秒数

对于1970-1-1 00:00:00 UTC之前的时间返回负值。

getFullYear()方法

getFullYear()方法以四位数的数字返回日期的年份。

var d = new Date();
d.getFullYear();
测试看看‹/›

getMonth()方法

getMonth()方法以数字(0到11)返回一年中的月份。

var d = new Date();
d.getMonth();
测试看看‹/›

JavaScript的月份从0到11。一月是0,十二月是11。

在以下示例中,month变量保存月份的名称:

var arr = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
var d = new Date();
var month = arr[d.getMonth()];
测试看看‹/›

getDate()方法

getDate()方法以数字(1-31)形式返回月份中的某天。

var d = new Date();
d.getDate();
测试看看‹/›

getDay()方法

getDay()方法以数字(0-6)返回星期几。

var d = new Date();
d.getDay();
测试看看‹/›

JavaScript将工作日从0到6进行计数。星期日为0,星期六为6。

在下面的示例中,Today变量保存日期名称:

var arr = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
var d = new Date();
var today = arr[d.getDay()];
测试看看‹/›

getHours()方法

getHours()方法将日期的小时数返回为数字(0-23)。

var d = new Date();
d.getHours();
测试看看‹/›

getMinutes()方法

getMinutes()方法将日期的分钟数返回为数字(0-59)。

var d = new Date();
d.getMinutes();
测试看看‹/›

getSeconds()方法

getSeconds()方法将日期的秒数返回为数字(0-59)。

var d = new Date();
d.getSeconds();
测试看看‹/›

getMilliseconds()方法

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

var d = new Date();
d.getMilliseconds();
测试看看‹/›

getTime()方法

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

var d = new Date();
d.getTime();
测试看看‹/›

一天(24小时)为8,640万毫秒。

修改日期(设置)

对于上面我们学到的所有get方法,都有一个对应的set方法。

如果使用get从日期中检索特定的组成部分,则使用set来修改日期的组成部分。

下表是Date对象的set方法的表:

方法Date/Time范围
setFullYear()设置完整年份YYYY
setMonth()设置月份0-11(0 =一月)
setDate()设置为某天(当月)1-31
setDay()设置一周中的某天0-6(0 =星期日)
setHours()设置小时0-23
setMinutes()设置分钟0-59
setSeconds()设置秒数0-59
setMilliseconds()设置毫秒0-999
setTime()设置时间戳

通过指定从 1970-1-1 00:00:00 UTC 开始经过的毫秒数来设置日期对象的时间

对于早于 1970-1-1 00:00:00 UTC的时间可使用负值。

setFullYear()方法

setFullYear()方法设置日期对象的年份。

var d = new Date();
d.setFullYear(2010);
测试看看‹/›

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

var d = new Date();
d.setFullYear(2010, 8, 30);
测试看看‹/›

setMonth()方法

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

var d = new Date();
d.setMonth(11);
测试看看‹/›

setDate()方法

setDate()方法设置日期对象的月份中的某一天(1-31)。

var d = new Date();
d.setDate(22);
测试看看‹/›

setHours()方法

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

var d = new Date();
d.setHours(18);
测试看看‹/›

setMinutes()方法

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

var d = new Date();
d.setMinutes(32);
测试看看‹/›

setSeconds()方法

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

var d = new Date();
d.setSeconds(24);
测试看看‹/›

setMilliseconds()方法

setMilliseconds()方法设置日期对象的毫秒数(0-999)。

var d = new Date();
d.setMilliseconds(420);
document.getElementById('result').innerHTML = d.getMilliseconds();
测试看看‹/›

setTime()方法

setTime()方法将Date对象设置为自1970年1月1日以来的毫秒数。

var d = new Date();
d.setTime(1542655292087);
测试看看‹/›

使用UTC的日期方法

上面讨论的get方法根据用户的本地时区设置检索日期组件。

为了更好地指定日期和时间,可以使用getUTC方法,该方法与get方法完全相同,不同之处在于它们根据UTC(世界标准时间)标准计算时间。

下表是JavaScript Date对象的UTC方法的表:

方法Date/Time范围
getUTCFullYear()YYYY
getUTCMonth()0-11(0 =一月)
getUTCDate()某一天(当月)1-31
getUTCDay()一周中的某天0-6(0 =星期日)
getUTCHours()小时0-23
getUTCMinutes()分钟0-59
getUTCSeconds()0-59
getUTCMilliseconds()毫秒0-999

要知道 本地时间(local) 和 UTC get方法之间的区别,我们可以运行以下代码:

let now = new Date();

// 打印本地时间和UTC时区(local 和 UTC)
document.write(now.getHours());
document.write(now.getUTCHours());
测试看看‹/›

运行此代码将打印出当前时间以及UTC时区的时间。如果您当前处于UTC时区,则运行上述程序所输出的数字将相同。

更多示例

在此示例中,JavaScript显示当前时间。

10:38:2
测试看看

完整日期参考

要获取完整的属性和方法参考,请访问我们的JavaScript日期参考

参考部分包含所有Date属性和方法的描述和示例。