Hàm tính tuần thứ bao nhiêu trong năm javascript năm 2024

const today = new Date();

5 được giới thiệu là một

const today = Date.now();
console.log(today); // your current date
setTimeout(() => {
   console.log(today); // still the same
}, 3000)

0 chứa thông tin về thời gian, và tất nhiên

const today = new Date();

5 cũng có những

const today = Date.now();
console.log(today); // your current date
setTimeout(() => {
   console.log(today); // still the same
}, 3000)

2 để giúp chúng ta lấy được giá trị đó.

II. Khai báo mới:

const today = new Date();

Biến

const today = new Date();

8 sẽ có giá trị là thời điểm của đoạn code trên được biên dịch và thực hiện. Ví dụ nếu như code thực hiện vào

const today = Date.now();
console.log(today); // your current date
setTimeout(() => {
   console.log(today); // still the same
}, 3000)

4 và pending 3 giây bằng

const today = Date.now();
console.log(today); // your current date
setTimeout(() => {
   console.log(today); // still the same
}, 3000)

5 rồi

const today = Date.now();
console.log(today); // your current date
setTimeout(() => {
   console.log(today); // still the same
}, 3000)

6 thì giá trị vẫn là

const today = Date.now();
console.log(today); // your current date
setTimeout(() => {
   console.log(today); // still the same
}, 3000)

4 nha

Hàm tính tuần thứ bao nhiêu trong năm javascript năm 2024
.
const today = Date.now();
console.log(today); // your current date
setTimeout(() => {
   console.log(today); // still the same
}, 3000)

Ồ, bạn thấy 2 dãy số loằng ngoằng

const today = Date.now();
console.log(today); // your current date
setTimeout(() => {
   console.log(today); // still the same
}, 3000)

8 thay vì giá trị thời gian như ở ví dụ ban đầu hả?

Mình có thay đổi 1 chút, sử dụng

const today = new Date();

8 lấy giá trị từ

// get Dates as Milliseconds
const today_1 = new Date().valueOf();
const today_2 = new Date().getTime();
const today_3 = Date.now();

0. Nó sẽ lấy chính xác giá trị thời gian thôi, nhưng theo 1 định dạng khác, gọi là

// get Dates as Milliseconds
const today_1 = new Date().valueOf();
const today_2 = new Date().getTime();
const today_3 = Date.now();

1, sẽ lấy mốc là

// get Dates as Milliseconds
const today_1 = new Date().valueOf();
const today_2 = new Date().getTime();
const today_3 = Date.now();

2.

// get Dates as Milliseconds
const today_1 = new Date().valueOf();
const today_2 = new Date().getTime();
const today_3 = Date.now();

Ngoài ra, chúng ta còn có thể tạo 1

const today = new Date();

5 từ dữ liệu có sẵn:

var day_1 = new Date(2020, 06, 20, 12, 00, 00, 0); // params: year, month, day, hour, minute, second, and millisecond.
var day_2 = new Date(1998, 10, 01, 06, 33, 30); // params: year, month, day, hour, minute, second.
// tương tự chúng ta có thể rút ngắn params cho đến khi chỉ còn một biến thì đây sẽ là milliseconds
var day_3 = new Date(1998); // param: milliseconds.
// hoặc chúng ta có thể truyền vào một chuỗi (dateString):
var day_4 = new Date("January 10, 1998 06:33:00");

Hãy lưu ý rằng:

JavaScript counts months from 0 to 11. January is 0. December is 11.

III. Format:

Có 3 kiểu định dạng

// get Dates as Milliseconds
const today_1 = new Date().valueOf();
const today_2 = new Date().getTime();
const today_3 = Date.now();

4 chính trọng

// get Dates as Milliseconds
const today_1 = new Date().valueOf();
const today_2 = new Date().getTime();
const today_3 = Date.now();

5, trong đó kiểu

// get Dates as Milliseconds
const today_1 = new Date().valueOf();
const today_2 = new Date().getTime();
const today_3 = Date.now();

6 có tên đầy đủ là

// get Dates as Milliseconds
const today_1 = new Date().valueOf();
const today_2 = new Date().getTime();
const today_3 = Date.now();

7 và định dạng của

// get Dates as Milliseconds
const today_1 = new Date().valueOf();
const today_2 = new Date().getTime();
const today_3 = Date.now();

8 là

// get Dates as Milliseconds
const today_1 = new Date().valueOf();
const today_2 = new Date().getTime();
const today_3 = Date.now();

9 cũng sẽ là kiểu mặc định khi bạn tạo mới 1

const today = new Date();

5:

Kiểu Ví dụ ISO Date "1998-01-10" (The International Standard) Short Date 01/10/1998 Long Date "Jan 10 1998" hoặc"10 Jan 1998"

IV. Working with

const today = new Date();

5:

1. Date Methods:

Đối tượng

const today = new Date();

5 cung cấp nhiều methods để xử lý thời gian, bạn có thể check list methods ở ĐÂY. Chúng ta sẽ đi qua một vài methods thường được dùng:

  • getDate() : lấy ngày của tháng:

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

  • getDay() : lấy thứ trong tuần, với giá trị trả về là

    var day_1 = new Date(2020, 06, 20, 12, 00, 00, 0); // params: year, month, day, hour, minute, second, and millisecond. var day_2 = new Date(1998, 10, 01, 06, 33, 30); // params: year, month, day, hour, minute, second. // tương tự chúng ta có thể rút ngắn params cho đến khi chỉ còn một biến thì đây sẽ là milliseconds var day_3 = new Date(1998); // param: milliseconds. // hoặc chúng ta có thể truyền vào một chuỗi (dateString): var day_4 = new Date("January 10, 1998 06:33:00");

    3, tương ứng với

    var day_1 = new Date(2020, 06, 20, 12, 00, 00, 0); // params: year, month, day, hour, minute, second, and millisecond. var day_2 = new Date(1998, 10, 01, 06, 33, 30); // params: year, month, day, hour, minute, second. // tương tự chúng ta có thể rút ngắn params cho đến khi chỉ còn một biến thì đây sẽ là milliseconds var day_3 = new Date(1998); // param: milliseconds. // hoặc chúng ta có thể truyền vào một chuỗi (dateString): var day_4 = new Date("January 10, 1998 06:33:00");

    4:

const day = new Date(1998, 01, 10);
console.log(day.getDay()); // -> 2

  • getMonth() : lấy tháng với giá trị từ

    var day_1 = new Date(2020, 06, 20, 12, 00, 00, 0); // params: year, month, day, hour, minute, second, and millisecond. var day_2 = new Date(1998, 10, 01, 06, 33, 30); // params: year, month, day, hour, minute, second. // tương tự chúng ta có thể rút ngắn params cho đến khi chỉ còn một biến thì đây sẽ là milliseconds var day_3 = new Date(1998); // param: milliseconds. // hoặc chúng ta có thể truyền vào một chuỗi (dateString): var day_4 = new Date("January 10, 1998 06:33:00");

    5, tương ứng với

    var day_1 = new Date(2020, 06, 20, 12, 00, 00, 0); // params: year, month, day, hour, minute, second, and millisecond. var day_2 = new Date(1998, 10, 01, 06, 33, 30); // params: year, month, day, hour, minute, second. // tương tự chúng ta có thể rút ngắn params cho đến khi chỉ còn một biến thì đây sẽ là milliseconds var day_3 = new Date(1998); // param: milliseconds. // hoặc chúng ta có thể truyền vào một chuỗi (dateString): var day_4 = new Date("January 10, 1998 06:33:00");

    6:

const day = new Date(1998, 01, 10);
console.log(day.getMonth()); // -> 0

  • getFullYear() : lấy năm:

const day = new Date(1998, 01, 10);
console.log(day.getFullYear()); // -> 1998

Chúng ta cũng có methods lấy giờ:

  • getMilliseconds() : lấy giây.
  • getMinutes() : lấy phút.
  • getHours() : lấy giờ:

const day = new Date(1998, 01, 10);
console.log(day.getHours()); // -> vì không có param cho Hour nên mặc định là 0

Ngoài ra chúng ta còn có các methods cho giờ quốc tế bằng việc thêm UTC sau get và trước phần tử chúng ta cần lấy:

  • getUTCDate(): lấy giờ theo mốc UTC.

2. Xử lý ngày giờ trong 1 project:

Như các bạn thấy,

const today = new Date();

5 hỗ trợ chúng ta rất đầy đủ các methods, xong việc sử dụng lại là một vấn đề khác.

Chẳng hạn, chúng ta muốn lấy ra giờ hiện tại chẳng hạn, bạn có chắc mình sẽ thích sử dụng các methods của

const today = new Date();

5?

const today = new Date();

0

Nếu chúng ta lấy ra định dạng khác thì sao? Chẳng hạn:

var day_1 = new Date(2020, 06, 20, 12, 00, 00, 0); // params: year, month, day, hour, minute, second, and millisecond.
var day_2 = new Date(1998, 10, 01, 06, 33, 30); // params: year, month, day, hour, minute, second.
// tương tự chúng ta có thể rút ngắn params cho đến khi chỉ còn một biến thì đây sẽ là milliseconds
var day_3 = new Date(1998); // param: milliseconds.
// hoặc chúng ta có thể truyền vào một chuỗi (dateString):
var day_4 = new Date("January 10, 1998 06:33:00");

9, đoạn code trên sẽ rất là dài, nào là

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

0 giờ phút giây, rồi check xem giá trị có bé hơn 10 không để chèn thêm số 0. Lúc này chúng ta thường tìm đến sự trợ giúp từ các Date Libraries bên ngoài, và được đông đảo người dùng nhất có lẽ là moment.js. Hỗ trợ nhiều dạng, từ

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

1 cho đến

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

2. Nhưng vấn đề của Moment.js khiến mình và nhiều Dev khác không thích có lẽ là kích thước:

Hàm tính tuần thứ bao nhiêu trong năm javascript năm 2024

Profile xịn xò từ phía moment.js

Hàm tính tuần thứ bao nhiêu trong năm javascript năm 2024
.

Nhưng chúng ta đã bỏ sót đi 1 bạn khác, đó là Intl -

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

3 của Javascript.

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

4 là 1

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

5 ra mắt vào năm 2012 (đọc thêm ở đây nè!), với kha khá công dụng:

which provides language sensitive string comparison, number formatting, and date and time formatting.

Để có thể

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

6 bằng methods

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

7:

const today = new Date();

1

Ví dụ:

const today = new Date();

2

Cách thức sử dụng

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

8 cũng cực kỳ đơn giản:

  • Thay đổi

    const day = new Date(1998, 01, 10); console.log(day.getDate()); // -> 10

    2 cho định dạng ngày tháng hoặc giờ.
  • Thay đổi

    const day = new Date(1998, 01, 10); console.log(day.getDay()); // -> 2

    0 cho cách hiển thị:

const today = new Date();

3

Các bạn có thể xem qua các

const day = new Date(1998, 01, 10);
console.log(day.getDay()); // -> 2

1 được hỗ trợ ở dây.

Bây giờ, quay về với bài toán định dạng

var day_1 = new Date(2020, 06, 20, 12, 00, 00, 0); // params: year, month, day, hour, minute, second, and millisecond.
var day_2 = new Date(1998, 10, 01, 06, 33, 30); // params: year, month, day, hour, minute, second.
// tương tự chúng ta có thể rút ngắn params cho đến khi chỉ còn một biến thì đây sẽ là milliseconds
var day_3 = new Date(1998); // param: milliseconds.
// hoặc chúng ta có thể truyền vào một chuỗi (dateString):
var day_4 = new Date("January 10, 1998 06:33:00");

9, chúng ta sẽ sử dụng

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

8:

const today = new Date();

4

Vậy là bạn đã biết thêm 1 cách làm việc với

const today = new Date();

5 rồi phải không? Kể từ khi biết đến

const day = new Date(1998, 01, 10);
console.log(day.getDate()); // -> 10

8, mình đã từ chối mọi

const day = new Date(1998, 01, 10);
console.log(day.getDay()); // -> 2

6

const day = new Date(1998, 01, 10);
console.log(day.getDay()); // -> 2

7

const day = new Date(1998, 01, 10);
console.log(day.getDay()); // -> 2

8 trong các dự án có mình tham gia

Hàm tính tuần thứ bao nhiêu trong năm javascript năm 2024
.

Song đây chỉ là lời khuyên của cá nhân mình thôi nhé, nếu một ngày bạn gặp 1 trường hợp làm việc với

const today = new Date();

5 và cảm thấy phức tạp, bạn cũng có thể check qua list

const day = new Date(1998, 01, 10);
console.log(day.getMonth()); // -> 0

0 này!!~~