Chuyển đổi timestamp sang ngày giờ trong javascript một cách đơn giản

Post Reply
User avatar
stararound
Posts: 27
Joined: Wed Apr 17, 2019 1:29 pm

Chuyển đổi timestamp sang ngày giờ trong javascript một cách đơn giản

Post by stararound »

Bạn lưu time trong database của bạn kiểu timestamp, khi lấy để hiển thị lên front end và bối rối vì phải đi xử lý hiển thị format các kiểu.

Search google thì ra một số cách kiểu như sau:

Code: Select all

// giả sử lấy được timestamp từ DB
let unix_timestamp = 1549312452

// x1000 vì timestamp thể hiện ở milliseconds chứ ko phải seconds
var date = new Date(unix_timestamp * 1000);

// tôi lấy ngày tháng năm sơ sài thế này
var year = date.getFullYear();
var month = date.getMonth();
var date = date.getDate();
var hour = date.getHours();
var min = "0" + date.getMinutes();
var sec = "0" + date.getSeconds();

var time = date + '/' + month + '/' + year + ' ' + hour + ':' + min + ':' + sec ;

console.log(time);
Tuy cách ở trên cũng sử dụng được, nhưng hơi dài dòng. Ta chỉ cần sử dụng các method sẵn có của đối tượng Date có thể lấy time theo format US hay VN khá đơn giản:

Để lấy ngày đơn giản:

Code: Select all

let unix_timestamp = 1585393200
var date = new Date(unix_timestamp * 1000);
console.log(date.toDateString());
==================================
Result: Sat Mar 28 2020 
=> tuy nhiên nếu bạn không thích format này, hãy xem xét các ví dụ tiếp theo.
Đoạn code sau lấy format theo us-EN, nếu cần theo format VN thì thay toLocaleDateString("us-EN") bằng toLocaleDateString("vi-VN").
Nếu mặc định không truyền tham số chỉ định location thì nó sẽ lấy theo format us-EN.

Code: Select all

let unix_timestamp = 1585393200
var date = new Date(unix_timestamp * 1000);
console.log(date.toLocaleDateString("us-EN"));
==================================
Result: 3/28/2020
Đoạn code sau lấy format ngày và giờ:phút:giây

Code: Select all

let unix_timestamp = 1585393200
var date = new Date(unix_timestamp * 1000);
console.log(date.toLocaleString());
==================================
Result: 3/28/2020, 6:00:00 PM
Nếu chỉ muốn lấy thời gian:

Code: Select all

let unix_timestamp = 1585393200
var date = new Date(unix_timestamp * 1000);
console.log(date.toLocaleTimeString());
==================================
Result: 6:00:00 PM
Ngoài ra muốn lấy ngày giờ chuẩn Greenwich:

Code: Select all

let unix_timestamp = 1585393200
var date = new Date(unix_timestamp * 1000);
console.log(date.toGMTString());
==================================
Result: Sat, 28 Mar 2020 11:00:00 GMT

Post Reply