NỘI DUNG BÀI VIẾT
Đôi khi, bạn có thể muốn lấy định dạng YYYYMMDD của đối tượng Date trong JavaScript. Trong bài viết này,cùng mình tìm hiểu cách định dạng ngày trong JavaScript thành một chuỗi ở định dạng YYYYMMDD.
Date là gì trong Javascript
Date là một đối tượng chuyên dùng để xử lý ngày giờ trong Javascript. Vì nó là ngôn ngữ ở client nên thời gian mà nó lấy được chính là thời gian được thiết lập trên máy của client. Vì vậy, khi lập trình thì bạn không nên lấy thông tin ngày giờ từ Javascript để lưu trữ vào hệ thống mà thay vào đó hãy sử dụng ngôn ngữ phía server.
Sử dụng phương thức chuỗi ngày và chuỗi JavaScript gốc
Một cách để đưa ngày JavaScript vào chuỗi ở định dạng YYYYMMDD là sử dụng các phương thức chuỗi và ngày JavaScript gốc.
Ví dụ, bạn có thể viết:
const date = new Date(2021, 1, 1)
const year = date.getFullYear()
const month = ('0' + (date.getMonth() + 1)).substr(-2)
const day = ('0' + date.getDate()).substr(-2)
const dateStr = [year, month, day].join('')
console.log(dateStr)
Code language: JavaScript (javascript)
Bạn tạo một date
đối tượng với hàm Date
tạo với năm, tháng và ngày.
Giá trị của tháng là từ 0 đến 11, trong đó 0 là tháng 1, 1 cho tháng 2, v.v.
Sau đó, chúng ta có thể nhận được năm, tháng và ngày từ ngày.
Tôi gọi getFullYear
để lấy năm 4 chữ số.
Và tôi gọi getMonth
để lấy tháng cộng với 1 để lấy một tháng mà con người có thể đọc được.
Sau đó, gắn chuỗi 0 vào trước nó và gọi substr
-2 để lấy 2 ký tự cuối cùng của chuỗi.
Và tôi gọi getDate
để lấy ngày tháng và định dạng nó theo cùng một cách với substr
.
Cuối cùng, tôi tham gia year
, month
và day
cùng với join
.
Do đó, dateStr
là '20210201'
.
Date.prototype.toISOString để lấy định dạng YYYYMMDD của đối tượng Date trong JavaScript
Bạn có thể gọi toISOString
để lấy chuỗi ngày từ một đối tượng ngày trong JavaScript.
Sau đó, bạn có thể sử dụng các phương thức chuỗi để trích xuất các phần năm, tháng và ngày và xóa dấu gạch ngang khỏi phần đó.
Ví dụ, bạn có thể viết:
const date = new Date(2021, 1, 1)
const dateStr = date.toISOString().slice(0, 10).replace(/-/g, "");
console.log(dateStr)
Code language: JavaScript (javascript)
Tôi gọi toISOString
để lấy chuỗi ngày ở định dạng ISO8601.
Sau đó, tôi gọi slice
với 0 và 10 để trích xuất phần đầu tiên, có năm, tháng và ngày.
Và sau đó tôi gọi replace
để thay thế tất cả các dấu gạch ngang bằng các chuỗi trống để loại bỏ chúng.
Do đó, tôi nhận được cùng một kết quả cho dateStr
.
Ngoài ra, bạn có thể thay thế slice
bằng substring
:
const date = new Date(2021, 1, 1)
const dateStr = date.toISOString().substring(0, 10).replace(/-/g, "");
console.log(dateStr)
Code language: JavaScript (javascript)
moment.js: định dạng 1 cách dễ dàng
Bạn cũng có thể sử dụng thư viện moment.js để định dạng YYYYMMDD một cách dễ dàng.
Ví dụ, bạn có thể viết:
const date = new Date(2021, 1, 1)
const dateStr = moment(date).format('YYYYMMDD');
console.log(dateStr)
Code language: JavaScript (javascript)
Bạn chuyển vào hàm date
của chúng tôi để tạo một đối tượng thời điểm trong ngày.
Sau đó, tôi gọi format
với chuỗi định dạng để định dạng mục.
Và vì vậy chúng tôi nhận được cùng một giá trị cho dateStr
.
Kết luận
Tôi có thể định dạng ngày JavaScript gốc thành một chuỗi với các phương thức chuỗi và ngày JavaScript gốc.
Hoặc bạn có thể sử dụng moment.js để định dạng ngày tháng theo định dạng YYYYMMDD.
Cảm ơn bạn đã theo dõi bài viết!
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.
TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI BẮT ĐẦU
KHOÁ HỌC BOOTCAMP JAVA/JAVASCRIPT/PHP TRỞ THÀNH LẬP TRÌNH VIÊN TRONG 5-6 THÁNG