JavaScript 日期和时间

发布于 2024-07-21 11:06:42 字数 6600 浏览 10 评论 0

在本教程中,您将借助示例来了解 JavaScript 中的日期和时间。在 JavaScript 中,日期和时间由 Date 对象表示。 Date 对象提供日期和时间信息,还提供各种方法。JavaScript 日期定义了 EcmaScript 时期 ,代表从 UTC 19701 月 1 日 起的毫秒数。此日期和时间与 UNIX 时期相同(计算机记录的日期和时间值的主要基础值)。

创建日期对象

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

  • 新的 Date()
  • 新日期(毫秒)
  • 新日期(日期字符串)
  • 新日期(年,月,日,小时,分钟,秒,毫秒)

new Date()

您可以使用 new Date() 构造函数创建日期对象。例如,

let timeNow = new Date();
console.log(timeNow); // shows current date and time

输出

Mon Jul 06 2020 12:03:49 GMT+0545 (Nepal Time)

在这里, new Date() 使用当前日期和本地时间创建一个新的日期对象。


new Date(毫秒)

Date 对象包含一个数字,该数字表示自 19701 月 1 日 UTC 以来的毫秒数。

new Date(milliseconds) 通过将毫秒添加到零时间来创建一个新的 date 对象。例如,

let time1 = new Date(0);

// epoch time
console.log(time1); // Thu Jan 01 1970 05:30:00

// 100000000000 milliseconds after the epoch time
let time2 = new Date(100000000000)
console.log(time2); // Sat Mar 03 1973 15:16:40

注意 :1000 毫秒等于 1 秒。


新日期(日期字符串)

new Date(date string) 从 date 字符串创建一个新的 date 对象。

在 JavaScript 中,通常有三种日期输入格式。

ISO 日期格式

您可以通过传递 ISO 日期格式来创建日期对象。例如,

// ISO Date(International Standard)
let date = new Date("2020-07-01");

// the result date will be according to UTC
console.log(date); // Wed Jul 01 2020 05:45:00 GMT+0545

您也只能通过年份和月份或仅通过年份。例如,

let date = new Date("2020-07");
console.log(date); // Wed Jul 01 2020 05:45:00 GMT+0545

let date1 = new Date("2020");
console.log(date1); // Wed Jul 01 2020 05:45:00 GMT+0545

您还可以将特定时间传递给 ISO 日期。

let date = new Date("2020-07-01T12:00:00Z");
console.log(date); // Wed Jul 01 2020 17:45:00 GMT+0545

注意 :日期和时间用大写字母 T 分隔。 UTC 时间用大写 Z 定义。

短日期和长日期格式

其他两种日期格式是 短日期 格式长日期 格式

// short date format "MM/DD/YYYY"
let date = new Date("03/25/2015");
console.log(date); // Wed Mar 25 2015 00:00:00 GMT+0545

// long date format "MMM DD YYYY"
let date1 = new Date("Jul 1 2020");
console.log(date1); // Wed Jul 01 2020 00:00:00 GMT+0545

// month and day can be in any order
let date2 = new Date("1 Jul 2020");
console.log(date2); // Wed Jul 01 2020 00:00:00 GMT+0545

// month can be full or abbreviated. Also month names are insensitive.
// comma are ignored
let date3 = new Date("July 1 2020");
console.log(date3); // Wed Jul 01 2020 00:00:00 GMT+0545

let date4 = new Date("JULY, 1, 2020");
console.log(date4); // Wed Jul 01 2020 00:00:00

新日期(年,月,日,小时,分钟,秒,毫秒)

new Date(year, month,...) 通过传递特定的日期和时间来创建新的日期对象。例如,

let time1 = new Date(2020, 1, 20, 4, 12, 11, 0);
console.log(time1); // Thu Feb 20 2020 04:12:11

传递的参数具有特定顺序。

如果传递了四个数字,则代表年,月,日和小时。例如,

let time1 = new Date(2020, 1, 20, 4);
console.log(time1); // Thu Feb 20 2020 04:00:00

同样,如果传递了两个参数,则表示年份和月份。例如,

let time1 = new Date(2020, 1);
console.log(time1); // Sat Feb 01 2020 00:00:00

注意 :如果仅传递一个参数,则将其视为毫秒。因此,您必须传递两个参数才能使用此日期格式。

在 JavaScript 中,月份从 0 到 11 进行计数。一月是 0 ,十二月是 11


JavaScript 日期方法

JavaScript Date 对象中提供了多种方法。

MethodDescription
now()Returns the numeric value corresponding to the current time(the number of milliseconds elapsed since January 1, 1970 00:00:00 UTC)
getFullYear()Gets the year according to local time
getMonth()Gets the month, from 0 to 11 according to local time
getDate()Gets the day of the month(1–31) according to local time
getDay()Gets the day of the week(0-6) according to local time
getHours()Gets the hour from 0 to 23 according to local time
getMinutesGets the minute from 0 to 59 according to local time
getUTCDate()Gets the day of the month(1–31) according to universal time
setFullYear()Sets the full year according to local time
setMonth()Sets the month according to local time
setDate()Sets the day of the month according to local time
setUTCDate()Sets the day of the month according to universal time

示例:日期方法

let timeInMilliseconds = Date.now();
console.log(timeInMilliseconds); // 1593765214488

let time = new Date;

// get day of the month
let date = time.getDate();
console.log(date); // 30

// get day of the week
let year = time.getFullYear();
console.log(year); // 2020

let utcDate = time.getUTCDate();
console.log(utcDate); // 30

let event = new Date('Feb 19, 2020 23:15:30');
// set the date
event.setDate(15);
console.log(event.getDate()); // 15

// Only 28 days in February!
event.setDate(35);

console.log(event.getDate()); // 7

格式化日期

与其他编程语言不同,JavaScript 不提供用于格式化日期的内置函数 。

但是,您可以提取单个位并像这样使用它。

let currentDate = new Date();
let date = currentDate.getDate();
let month = currentDate.getMonth();
let year = currentDate.getFullYear();

// show in specific format
let monthDateYear = (month+1) + '/' + date + '/' + year;

console.log(monthDateYear); // 7/3/2020

注意 :上面的程序给出的长度不一致,因为日期和月份分别为一位数字和两位数。


日期对象中的自动更正

当您在 Date 对象中分配超出范围的值时,它会自动更正。例如,

let date = new Date(2008, 0, 33);
// Jan does not have 33 days

console.log(date);

输出

Sat Feb 02 2008

要了解有关 JavaScript 中日期和时间的更多信息,请访问 Demystifying Date and Time。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

嘦怹

暂无简介

0 文章
0 评论
616 人气
更多

推荐作者

謌踐踏愛綪

文章 0 评论 0

开始看清了

文章 0 评论 0

高速公鹿

文章 0 评论 0

alipaysp_PLnULTzf66

文章 0 评论 0

热情消退

文章 0 评论 0

白色月光

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文