聊聊前端中使用到的“日期”

114 阅读2分钟

浏览器有 4 种方法创建新的日期对象:

  • 1.new Date() 默认情况下,JavaScript 将使用浏览器的时区并将日期显示为全文本字符串
var d = new Date();
console.log(d);
// Wed Dec 02 2020 19:04:49 GMT+0800 (中国标准时间)
  • 2.new Date(year, month, day, hours, minutes, seconds, milliseconds)

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

var d = new Date(2018, 11, 24);
console.log(d);
// Mon Dec 24 2018 00:00:00 GMT+0800 (中国标准时间)
  • new Date(date string)

注意点:月份是真实月份,时间是当前时区时间

var d = new Date("2018-11-24");
console.log(d);
// Sat Nov 24 2018 08:00:00 GMT+0800 (中国标准时间)
  • new Date(milliseconds) JavaScript 将日期存储为自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来的毫秒数。
var d = new Date("2018-11-24"); // 详细内容见下面
console.log(d);
// Sat Nov 24 2018 08:00:00 GMT+0800 (中国标准时间)
// 计算的日期相对于您的时区。
// 根据您的时区,上面的结果将在 11月23日至11月24日之间变化

常用日期格式

有四种 JavaScript 日期输入格式:

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

日期常用的方法

var d = new Date(2018, 11, 24);
console.log("toString:",d.toString());
console.log("toDateString:",d.toDateString());
console.log("toLocaleDateString:",d.toLocaleDateString());
console.log("toTimeString:",d.toTimeString());
console.log("toLocaleTimeString:",d.toLocaleTimeString());
console.log("toUTCString:",d.toUTCString());
// 结果如下:
toString: Mon Dec 24 2018 00:00:00 GMT+0800 (中国标准时间)
toDateString: Mon Dec 24 2018
toLocaleDateString: 2018/12/24
toTimeString: 00:00:00 GMT+0800 (中国标准时间)
toLocaleTimeString: 上午12:00:00

时区

在设置日期时,如果不规定时区,则 JavaScript 会使用浏览器的时区。 当获取日期时,如果不规定时区,则结果会被转换为浏览器时区。 换句话说,假如日期/时间以 GMT(格林威治标准时间)创建,该日期/时间将被转换为 CST(中国标准时间),如果用户从中国进行浏览,所以最好使用字符串