Đối tượng Date trong JavaScript

Đối tượng Date trong JavaScript là một đối tượng toàn cục được sử dụng để xử lý ngày và thời gian. Đối tượng Date dựa trên Unix Timestamp, tức là số miliseconds tính từ 00:00:00 UTC ngày 1 tháng 1 năm 1970.

Mô tả

Constructor Date có thể nhận bốn dạng tham số khác nhau: không có tham số, Unix timestamp, chuỗi thời gian, hoặc từng thành phần của ngày và giờ. Phương thức tạo một đối tượng Date mới là thông qua toán tử new, nếu gọi như hàm thông thường mà không dùng toán tử new sẽ trả về một chuỗi thay vì đối tượng Date.

  • Không có tham số: Nếu không cung cấp bất kỳ tham số nào, đối tượng Date mới sẽ đại diện cho thời điểm hiện tại.
  • Unix timestamp: Một giá trị nguyên biểu diễn số miliseconds kể từ 00:00:00 UTC ngày 1 tháng 1 năm 1970, bỏ qua giây lùa.
  • Chuỗi thời gian: Một chuỗi đại diện cho ngày, cần phải được phương thức Date.parse() nhận biết đúng, phù hợp với định dạng IETF-compliant RFC 2822 hoặc phiên bản của ISO8601.
  • Mỗi thành phần của ngày và giờ: Khi ít nhất cung cấp năm và tháng, constructor Date sẽ trả về một đối tượng Date với tất cả các thành phần đều lấy từ các tham số được cung cấp, những thành phần không được cung cấp sẽ sử dụng giá trị nhỏ nhất có thể, ngày là 1, còn lại là 0.
new Date();
new Date(value);
new Date(dateString);
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
console.log(new Date()); // Sun Oct 18 2020 10:46:54 GMT+0800 (Thời gian chuẩn Trung Quốc)
console.log(new Date(1602989155183)); // Sun Oct 18 2020 10:45:55 GMT+0800 (Thời gian chuẩn Trung Quốc)
console.log(new Date("2020-10-18 10:15:30")); // Sun Oct 18 2020 10:15:30 GMT+0800 (Thời gian chuẩn Trung Quốc)
console.log(new Date(2020, 9, 18, 10, 15, 30)); // Sun Oct 18 2020 10:15:30 GMT+0800 (Thời gian chuẩn Trung Quốc)
console.log(typeof(Date())); // string
console.log(typeof(new Date())); // object

Phương thức

Date.UTC()

Date.UTC(year,month[,date[,hrs[,min[,sec[,ms]]]]]) Phương thức Date.UTC() nhận các tham số tương tự như constructor Date khi truyền vào nhiều nhất, trả về số miliseconds từ 1970-1-1 00:00:00 UTC đến ngày được chỉ định.

  • year: Năm sau thế kỷ 19.
  • month: Số nguyên từ 0 đến 11, đại diện cho tháng.
  • date: Số nguyên từ 1 đến 31, đại diện cho ngày trong tháng.
  • hrs: Số nguyên từ 0 đến 23, đại diện cho giờ.
  • min: Số nguyên từ 0 đến 59, đại diện cho phút.
  • sec: Số nguyên từ 0 đến 59, đại diện cho giây.
  • ms: Số nguyên từ 0 đến 999, đại diện cho milisecond.
console.log(Date.UTC(2020, 9, 18, 10, 15, 30)); // 1603016130000

Date.now()

Date.now() Phương thức Date.now() trả về số miliseconds từ 1970-1-1 00:00:00 (UTC) đến thời điểm hiện tại.

console.log(Date.now()); // 1602991355257

Date.parse()

Date.parse(dateString) Phương thức Date.parse() phân tích một chuỗi đại diện cho một ngày cụ thể, chuỗi dateString cần phải tuân theo định dạng RFC2822 hoặc ISO 8601 (có thể hỗ trợ định dạng khác nhưng kết quả có thể không như mong đợi). Phương thức này trả về số miliseconds từ 1970-1-1 00:00:00 UTC đến đối tượng Date tương ứng hoặc NaN nếu chuỗi không thể phân tích hoặc chứa giá trị ngày không hợp lệ. Phương thức Date.parse() không được khuyến khích sử dụng trước ES5 vì việc phân tích chuỗi phụ thuộc vào triển khai. Cho đến nay, trình duyệt khác nhau vẫn có sự khác biệt trong cách phân tích chuỗi thời gian, vì vậy tốt nhất nên thủ công phân tích chuỗi thời gian và thư viện có thể giúp rất nhiều khi cần thích nghi với các định dạng khác nhau.

console.log(Date.parse("2020-10-18 10:15:30")); // 1602987330000 
console.log(Date.parse("2020-10-18 02:15:30 GMT")); // 1602987330000 
console.log(Date.parse("2020-10-18 02:15:30 UTC")); // 1602987330000 
console.log(Date.parse("2020-10-18 10:15:30 GMT")); // 1603016130000
console.log(Date.parse("2020-10-18 10:15:30 UTC")); // 1603016130000
console.log((1602987330000 - 1603016130000) / 1000 / 3600); // -8
// Nếu bạn ở Greenwich, thời điểm bắt đầu là 00:00:00 1/1/1970.
// Nếu bạn ở Bắc Kinh, thời điểm bắt đầu là 08:00:00 1/1/1970.
// Với cùng một thời điểm, Bắc Kinh sẽ có timestamp nhỏ hơn.
// Khi chạy Date.now() ở hai khu vực khác nhau, giá trị timestamp sẽ bằng nhau, timestamp không chứa thông tin về múi giờ.
// Nếu tôi ở Bắc Kinh lấy được một timestamp t, khi sử dụng new Date(t) ở Greenwich thì thời gian đó sẽ chậm 8 giờ so với tôi.
// Từ góc độ khác, với cùng một timestamp, Bắc Kinh vượt trội so với Greenwich 8 giờ.

Date.prototype.getDate()

dateObj.getDate() Theo giờ địa phương, trả về số thứ của tháng mà đối tượng Date đại diện, nằm trong khoảng từ 1 đến 31.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getDate()); // 18

Date.prototype.getDay()

dateObj.getDay() Phương thức getDay() trả về số thứ của tuần mà đối tượng Date đại diện, 0 đại diện cho chủ nhật.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getDay()); // 0

Date.prototype.getFullYear()

dateObj.getFullYear() Phương thức getFullYear() trả về năm mà đối tượng Date đại diện.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getFullYear()); // 2020

Date.prototype.getHours()

dateObj.getHours() Phương thức getHours() trả về giờ mà đối tượng Date đại diện.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getHours()); // 10

Date.prototype.getMilliseconds()

dateObj.getMilliseconds() Phương thức getMilliseconds() trả về milisecond mà đối tượng Date đại diện.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getMilliseconds()); // 0

Date.prototype.getMinutes()

dateObj.getMinutes() Phương thức getMinutes() trả về phút mà đối tượng Date đại diện.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getMinutes()); // 15

Date.prototype.getMonth()

dateObj.getMonth() Phương thức getMonth() trả về tháng mà đối tượng Date đại diện, là một số nguyên từ 0 đến 11, với 0 đại diện cho tháng đầu tiên.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getMonth()); // 9

Date.prototype.getSeconds()

dateObj.getSeconds() Phương thức getSeconds() trả về giây mà đối tượng Date đại diện.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getSeconds()); // 30

Date.prototype.getTime()

dateObj.getTime() Phương thức getTime() trả về một số nguyên, đại diện cho số miliseconds kể từ 1970-1-1 00:00:00, đến thời điểm mà đối tượng Date đại diện.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getTime()); // 1602987330000

Date.prototype.getTimezoneOffset()

dateObj.getTimezoneOffset() Phương thức getTimezoneOffset() trả về số phút giữa múi giờ UTC và múi giờ địa phương.

var date = new Date();
console.log(date.getTimezoneOffset() / 60); // -8

Date.prototype.getUTCDate()

dateObj.getUTCDate() Phương thức getUTCDate() trả về số thứ của tháng mà đối tượng Date đại diện, theo múi giờ UTC.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getUTCDate()); // 18

Date.prototype.getUTCDay()

dateObj.getUTCDay() Phương thức getUTCDay() trả về số thứ của tuần mà đối tượng Date đại diện, theo múi giờ UTC, với 0 đại diện cho chủ nhật.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getUTCDay()); // 0

Date.prototype.getUTCFullYear()

dateObj.getUTCFullYear() Phương thức getUTCFullYear() trả về năm mà đối tượng Date đại diện, theo múi giờ UTC.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getUTCFullYear()); // 2020

Date.prototype.getUTCHours()

dateObj.getUTCHours() Phương thức getUTCHours() trả về giờ mà đối tượng Date đại diện, theo múi giờ UTC.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getUTCHours()); // 2

Date.prototype.getUTCMilliseconds()

dateObj.getUTCMilliseconds() Phương thức getUTCMilliseconds() trả về milisecond mà đối tượng Date đại diện, theo múi giờ UTC.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getUTCMilliseconds()); // 0

Date.prototype.getUTCMinutes()

dateObj.getUTCMinutes() Phương thức getUTCMinutes() trả về phút mà đối tượng Date đại diện, theo múi giờ UTC.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getUTCMinutes()); // 15

Date.prototype.getUTCMonth()

dateObj.getUTCMonth() Phương thức getUTCMonth() trả về tháng mà đối tượng Date đại diện, theo múi giờ UTC, là một số nguyên từ 0 đến 11, với 0 đại diện cho tháng đầu tiên.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getUTCMonth()); // 9

Date.prototype.getUTCSeconds()

dateObj.getUTCSeconds() Phương thức getUTCSeconds() trả về giây mà đối tượng Date đại diện, theo múi giờ UTC.

var date = new Date("2020-10-18 10:15:30");
console.log(date.getUTCSeconds()); // 30

Date.prototype.setDate()

dateObj.setDate(dayValue) Phương thức setDate() đặt số thứ của tháng cho đối tượng Date, theo giờ địa phương.

  • dayValue: Một số nguyên đại diện cho ngày trong tháng.
var date = new Date("2020-10-18 10:15:30");
date.setDate(1);
console.log(date); // Thu Oct 01 2020 10:15:30 GMT+0800 (Thời gian chuẩn Trung Quốc)

Date.prototype.setFullYear()

dateObj.setFullYear(yearValue[, monthValue[, dayValue]]) Phương thức setFullYear() đặt năm cho đối tượng Date, theo giờ địa phương.

  • yearValue: Giá trị số nguyên đại diện cho năm, ví dụ 1995.
  • monthValue: Một số nguyên từ 0 đến 11, đại diện cho tháng từ 1 đến 12.
  • dayValue: Một số nguyên từ 1 đến 31, đại diện cho ngày trong tháng, nếu cung cấp dayValue thì monthValue cũng phải được cung cấp.
var date = new Date("2020-10-18 10:15:30");
date.setFullYear(2019, 0, 1);
console.log(date); // Tue Jan 01 2019 10:15:30 GMT+0800 (Thời gian chuẩn Trung Quốc)

Date.prototype.setHours()

dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]]) Phương thức setHours() đặt giờ cho đối tượng Date, theo giờ địa phương, trả về số miliseconds kể từ 1970-01-01 00:00:00 UTC đến thời điểm cập nhật, trước ES5 chỉ chấp nhận một tham số.

  • hoursValue: Một số nguyên từ 0 đến 23, đại diện cho giờ.
  • minutesValue: Một số nguyên từ 0 đến 59, đại diện cho phút.
  • secondsValue: Một số nguyên từ 0 đến 59, đại diện cho giây, nếu cung cấp secondsValue thì minutesValue cũng phải được cung cấp.
  • msValue: Một số nguyên từ 0 đến 999, đại diện cho milisecond, nếu cung cấp msValue thì minutesValue và secondsValue cũng phải được cung cấp.
var date = new Date("2020-10-18 10:15:30");
console.log(date.setHours(8)); // 1602980130000
console.log(date); // Sun Oct 18 2020 08:15:30 GMT+0800 (Thời gian chuẩn Trung Quốc)

Date.prototype.setMilliseconds()

dateObj.setMilliseconds(millisecondsValue) Phương thức setMilliseconds() đặt milisecond cho đối tượng Date, theo giờ địa phương.

  • millisecondsValue: Một số nguyên từ 0 đến 999, đại diện cho milisecond.
var date = new Date("2020-10-18 10:15:30");
date.setMilliseconds(1);
console.log(date.getMilliseconds()); // 1

Date.prototype.setMinutes()

dateObj.setMinutes(minutesValue[, secondsValue[, msValue]]) Phương thức setMinutes() đặt phút cho đối tượng Date, theo giờ địa phương, trước ES5 chỉ chấp nhận tham số đầu tiên.

  • minutesValue: Một số nguyên từ 0 đến 59, đại diện cho phút.
  • secondsValue: Một số nguyên từ 0 đến 59, đại diện cho giây. Nếu cung cấp secondsValue thì minutesValue cũng phải được cung cấp.
  • msValue: Một số nguyên từ 0 đến 999, đại diện cho milisecond, nếu cung cấp msValue thì minutesValue và secondsValue cũng phải được cung cấp.
var date = new Date("2020-10-18 10:15:30");
date.setMinutes(1);
console.log(date); // Sun Oct 18 2020 10:01:30 GMT+0800 (Thời gian chuẩn Trung Quốc)

Date.prototype.setMonth()

dateObj.setMonth(monthValue[, dayValue]) Phương thức setMonth() đặt tháng cho đối tượng Date, theo giờ địa phương, trả về số miliseconds kể từ 1970-01-01 00:00:00 UTC đến thời điểm cập nhật, trước ES5 chỉ chấp nhận tham số đầu tiên.

  • monthValue: Một số nguyên từ 0 đến 11, đại diện cho tháng từ 1 đến 12.
  • dayValue: Một số nguyên từ 1 đến 31, đại diện cho ngày trong tháng, 0 đại diện cho ngày cuối cùng của tháng trước đó.
var date = new Date("2020-10-18 10:15:30");
date.setMonth(1);
console.log(date); // Tue Feb 18 2020 10:15:30 GMT+0800 (Thời gian chuẩn Trung Quốc)

Date.prototype.setSeconds()

dateObj.setSeconds(secondsValue[, msValue]) Phương thức setSeconds() đặt giây cho đối tượng Date, theo giờ địa phương, trước ES5 chỉ chấp nhận tham số đầu tiên.

  • secondsValue: Một số nguyên từ 0 đến 59.
  • msValue: Một số nguyên từ 0 đến 999, đại diện cho milisecond.
var date = new Date("2020-10-18 10:15:30");
date.setSeconds(1);
console.log(date); // Sun Oct 18 2020 10:15:01 GMT+0800 (Thời gian chuẩn Trung Quốc)

Date.prototype.setTime()

dateObj.setTime(timeValue) Phương thức setTime() đặt thời gian cho đối tượng Date, bằng cách sử dụng một số nguyên đại diện cho số miliseconds kể từ 1970-1-1 00:00:00 UTC.

  • timeValue: Một số nguyên, đại diện cho số miliseconds kể từ 1970-1-1 00:00:00 UTC.
var date = new Date("2020-10-18 10:15:30");
date.setTime(1603011933306);
console.log(date); // Sun Oct 18 2020 17:05:33 GMT+0800 (Thời gian chuẩn Trung Quốc)

Date.prototype.setUTCDate()

dateObj.setUTCDate(dayValue) Phương thức setUTCDate() đặt số thứ của tháng cho đối tượng Date, theo múi giờ UTC.

  • dayValue: Một số nguyên từ 1 đến 31, đại diện cho ngày trong tháng.
var date = new Date("2020-10-18 10:15:30 GMT");
date.setUTCDate(1);
console.log(date.toUTCString()); // Thu, 01 Oct 2020 10:15:30 GMT

Date.prototype.setUTCFullYear()

dateObj.setUTCFullYear(yearValue[, monthValue[, dayValue]]) Phương thức setUTCFullYear() đặt năm cho đối tượng Date, theo múi giờ UTC, trước ES5 chỉ chấp nhận tham số đầu tiên.

  • yearValue: Giá trị số nguyên đại diện cho năm, ví dụ 1995.
  • monthValue: Một số nguyên từ 0 đến 11, đại diện cho tháng từ 1 đến 12.
  • dayValue: Một số nguyên từ 1 đến 31, đại diện cho ngày trong tháng, nếu cung cấp dayValue thì monthValue cũng phải được cung cấp.
var date = new Date("2020-10-18 10:15:30 GMT");
date.setUTCFullYear(2019);
console.log(date.toUTCString()); // Fri, 18 Oct 2019 10:15:30 GMT

Date.prototype.setUTCHours()

dateObj.setUTCHours(hoursValue[, minutesValue[, secondsValue[, msValue]]]) Phương thức setUTCHours() đặt giờ cho đối tượng Date, theo múi giờ UTC, trả về số miliseconds kể từ 1970-01-01 00:00:00 UTC đến thời điểm cập nhật.

  • hoursValue: Một số nguyên từ 0 đến 23, đại diện cho giờ.
  • minutesValue: Một số nguyên từ 0 đến 59, đại diện cho phút.
  • secondsValue: Một số nguyên từ 0 đến 59, đại diện cho giây, nếu cung cấp secondsValue thì minutesValue cũng phải được cung cấp.
  • msValue: Một số nguyên từ 0 đến 999, đại diện cho milisecond, nếu cung cấp msValue thì minutesValue và secondsValue cũng phải được cung cấp.
var date = new Date("2020-10-18 10:15:30 GMT");
date.setUTCHours(1);
console.log(date.toUTCString()); // Sun, 18 Oct 2020 01:15:30 GMT

Date.prototype.setUTCMilliseconds()

dateObj.setUTCMilliseconds(millisecondsValue) Phương thức setUTCMilliseconds() đặt milisecond cho đối tượng Date, theo múi giờ UTC.

  • millisecondsValue: Một số nguyên từ 0 đến 999, đại diện cho milisecond.
var date = new Date("2020-10-18 10:15:30 GMT");
date.setUTCMilliseconds(111);
console.log(date.getUTCMilliseconds()); // 111

Date.prototype.setUTCMinutes()

dateObj.setUTCMinutes(minutesValue[, secondsValue[, msValue]]) Phương thức setUTCMinutes() đặt phút cho đối tượng Date, theo múi giờ UTC, trả về số miliseconds kể từ UTC time 1970-01-01 00:00:00 đến thời điểm cập nhật.

  • minutesValue: Một số nguyên từ 0 đến 59, đại diện cho phút.
  • secondsValue: Một số nguyên từ 0 đến 59, đại diện cho giây, nếu cung cấp secondsValue thì minutesValue cũng phải được cung cấp.
  • msValue: Một số nguyên từ 0 đến 999, đại diện cho milisecond, nếu cung cấp msValue thì minutesValue và secondsValue cũng phải được cung cấp.
var date = new Date("2020-10-18 10:15:30 GMT");
date.setUTCMinutes(1);
console.log(date.toUTCString()); // Sun, 18 Oct 2020 10:01:30 GMT

Date.prototype.setUTCMonth()

dateObj.setUTCMonth(monthValue[, dayValue]) Phương thức setUTCMonth() đặt tháng cho đối tượng Date, theo múi giờ UTC, trả về số miliseconds kể từ UTC time 1970-01-01 00:00:00 đến thời điểm cập nhật.

  • monthValue: Một số nguyên từ 0 đến 11, đại diện cho tháng từ 1 đến 12.
  • dayValue: Một số nguyên từ 1 đến 31, đại diện cho ngày trong tháng.
var date = new Date("2020-10-18 10:15:30 GMT");
date.setUTCMonth(1);
console.log(date.toUTCString()); // Tue, 18 Feb 2020 10:15:30 GMT

Date.prototype.setUTCSeconds()

dateObj.setUTCSeconds(secondsValue[, msValue]) Phương thức setUTCSeconds() đặt giây cho đối tượng Date, theo múi giờ UTC, trả về số miliseconds kể từ UTC time 1970-01-01 00:00:00 đến thời điểm cập nhật.

  • secondsValue: Một số nguyên từ 0 đến 59, đại diện cho giây.
  • msValue: Một số nguyên từ 0 đến 999, đại diện cho milisecond.
var date = new Date("2020-10-18 10:15:30 GMT");
date.setUTCSeconds(1);
console.log(date.toUTCString()); // Sun, 18 Oct 2020 10:15:01 GMT

Date.prototype.toDateString()

dateObj.toDateString() Phương thức toDateString() trả về chuỗi đại diện cho phần ngày của đối tượng Date.

var date = new Date("2020-10-18 10:15:30");
console.log(date.toDateString()); // Sun Oct 18 2020

Date.prototype.toISOString()

dateObj.toISOString() Phương thức toISOString() trả về chuỗi ISO (ISO 8601 Extended Format) đại diện cho thời gian, luôn theo múi giờ UTC, thêm hậu tố Z.

var date = new Date("2020-10-18 10:15:30");
console.log(date.toISOString()); // 2020-10-18T02:15:30.000Z

Date.prototype.toJSON()

dateObj.toJSON() Phương thức toJSON() trả về chuỗi JSON đại diện cho đối tượng Date, mặc định sử dụng phương thức toISOString(). Phương thức này thường được sử dụng cho quá trình serial hóa đối tượng Date sang JSON.

var date = new Date("2020-10-18 10:15:30");
console.log(date.toJSON()); // 2020-10-18T02:15:30.000Z

Date.prototype.toLocaleDateString()

dateObj.toLocaleDateString([locales [, options]]) Phương thức toLocaleDateString() trả về chuỗi đại diện cho phần ngày của đối tượng Date, theo định dạng tùy thuộc vào ngôn ngữ. Các tham số locales và options cho phép chỉ định định dạng hiển thị và tùy chỉnh hành vi của phương thức. Trong các trình duyệt cũ, tham số locales và options bị bỏ qua và sử dụng ngôn ngữ và định dạng hiển thị riêng lẻ.

var date = new Date("2020-10-18 10:15:30");
console.log(date.toLocaleDateString()); // 2020/10/18

Date.prototype.toLocaleString()

dateObj.toLocaleString([locales [, options]]) Phương thức toLocaleString() trả về chuỗi đại diện cho đối tượng Date, theo định dạng tùy thuộc vào ngôn ngữ. Các tham số locales và options cho phép chỉ định định dạng hiển thị và tùy chỉnh hành vi của phương thức. Trong các trình duyệt cũ, tham số locales và options bị bỏ qua và sử dụng ngôn ngữ và định dạng hiển thị riêng lẻ.

var date = new Date("2020-10-18 10:15:30");
console.log(date.toLocaleString()); // 2020/10/18 10:15:30

Date.prototype.toLocaleTimeString()

dateObj.toLocaleTimeString([locales [, options]]) Phương thức toLocaleTimeString() trả về chuỗi đại diện cho phần thời gian của đối tượng Date, theo định dạng tùy thuộc vào ngôn ngữ. Các tham số locales và options cho phép chỉ định định dạng hiển thị và tùy chỉnh hành vi của phương thức. Trong các trình duyệt cũ, tham số locales và options bị bỏ qua và sử dụng ngôn ngữ và định dạng hiển thị riêng lẻ.

var date = new Date("2020-10-18 10:15:30");
console.log(date.toLocaleTimeString()); // 10:15:30

Date.prototype.toString()

dateObj.toString() Phương thức toString() trả về chuỗi đại diện cho đối tượng Date.

var date = new Date("2020-10-18 10:15:30");
console.log(date.toString()); // Sun Oct 18 2020 10:15:30 GMT+0800 (Thời gian chuẩn Trung Quốc)

Date.prototype.toTimeString()

dateObj.toTimeString() Phương thức toTimeString() trả về chuỗi đại diện cho phần thời gian của đối tượng Date.

var date = new Date("2020-10-18 10:15:30");
console.log(date.toTimeString()); // 10:15:30 GMT+0800 (Thời gian chuẩn Trung Quốc)

Date.prototype.toUTCString()

dateObj.toUTCString() Phương thức toUTCString() chuyển đổi đối tượng Date thành chuỗi sử dụng múi giờ UTC.

var date = new Date("2020-10-18 10:15:30 GMT");
console.log(date.toUTCString()); // Sun, 18 Oct 2020 10:15:30 GMT

Date.prototype.valueOf()

dateObj.valueOf() Phương thức valueOf() trả về giá trị nguyên thủy của đối tượng Date.

var date = new Date("2020-10-18 10:15:30");
console.log(date.valueOf()); // 1602987330000

Date.prototype[@@toPrimitive]

Date()[Symbol.toPrimitive]() Phương thức @@toPrimitive() có thể chuyển đổi một đối tượng Date thành giá trị nguyên thủy. Nếu hint là "string" hoặc "default", @@toPrimitive() sẽ gọi toString(), nếu toString() không tồn tại, nó sẽ gọi valueOf(), nếu cả hai đều không tồn tại, nó sẽ ném ra TypeError. Nếu hint là "number", @@toPrimitive() sẽ thử valueOf() trước, nếu thất bại thì thử toString(). Khi bạn muốn một giá trị nguyên thủy nhưng nhận được một đối tượng, JavaScript có thể tự động gọi phương thức @@toPrimitive() để chuyển đổi đối tượng thành giá trị nguyên thủy, do đó bạn hiếm khi cần phải gọi phương thức này.

var date = new Date("2020-10-18 10:15:30");
console.log(date[Symbol.toPrimitive]("string")); // Sun Oct 18 2020 10:15:30 GMT+0800 (Thời gian chuẩn Trung Quốc)

Bài tập hàng ngày

https://github.com/WindrunnerMax/EveryDay

Tham khảo

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date

Đăng vào ngày 22 tháng 8 lúc 04:08