Tôi có thể chuyển đổi iso date thành mili giây không? ví dụ tôi muốn chuyển đổi iso này
2012-02-10T13:19:11+0000
đến mili giây.
Vì tôi muốn so sánh ngày hiện tại với ngày đã tạo. Và ngày tạo là ngày iso.
Tôi có thể chuyển đổi iso date thành mili giây không? ví dụ tôi muốn chuyển đổi iso này
2012-02-10T13:19:11+0000
đến mili giây.
Vì tôi muốn so sánh ngày hiện tại với ngày đã tạo. Và ngày tạo là ngày iso.
1328796537
, nhưng trong fb api, ngày được hiển thị trong iso2012-02-10T13:18:45+0000
date1.getTime() - date2.getTime()
- đó là tất cả các bạn cần
Câu trả lời:
Thử đi
var date = new Date("11/21/1987 16:00:00"); // some mock date
var milliseconds = date.getTime();
// This will return you the number of milliseconds
// elapsed from January 1, 1970
// if your date is less than that date, the value will be negative
console.log(milliseconds);
BIÊN TẬP
Bạn đã cung cấp ngày ISO. Nó cũng được chấp nhận bởi phương thức khởi tạo của Date
đối tượng
var myDate = new Date("2012-02-10T13:19:11+0000");
var result = myDate.getTime();
console.log(result);
Biên tập
Điều tốt nhất tôi đã tìm thấy là loại bỏ phần bù theo cách thủ công.
var myDate = new Date("2012-02-10T13:19:11+0000");
var offset = myDate.getTimezoneOffset() * 60 * 1000;
var withOffset = myDate.getTime();
var withoutOffset = withOffset - offset;
console.log(withOffset);
console.log(withoutOffset);
Có vẻ hoạt động. Về vấn đề chuyển đổi chuỗi ISO thành Date
đối tượng, bạn có thể tham khảo các liên kết được cung cấp.
BIÊN TẬP
Đã sửa lỗi chuyển đổi sai thành mili giây theo nhận xét của Prasad19sara.
var myDate = new Date("2012-02-10T13:19:11+0000");
Một cách viết tắt của các giải pháp trước đó là
var myDate = +new Date("2012-02-10T13:19:11+0000");
Nó thực hiện chuyển đổi loại trực tiếp và xuất trực tiếp ngày tháng ở định dạng mili giây.
Một cách khác cũng đang sử dụng phương pháp phân tích cú pháp của Ngày sử dụng chỉ xuất ra thời gian EPOCH tính bằng mili giây.
var myDate = Date.parse("2012-02-10T13:19:11+0000");
+new Date()
trả về 1447857230137
là thời gian tính bằng mili giây.
const dateMillis = Number(new Date('2017-09-26T20:24:18.801Z'))
nhưng new Date('2017-09-26T20:24:18.801Z').getTime()
hoặc new Date('2017-09-26T20:24:18.801Z').valueOf()
thậm chí dễ đọc hơn.
Một giải pháp khả thi khác là so sánh ngày hiện tại với January 1, 1970
, bạn có thể lấy January 1, 1970
bằng new Date(0)
;
var date = new Date();
var myDate= date - new Date(0);
Có, bạn có thể làm điều này trong một dòng duy nhất
let ms = Date.parse('2019-05-15 07:11:10.673Z');
console.log(ms);//1557904270673
Một giải pháp khác có thể là sử dụng trình phân tích cú pháp đối tượng Number như sau:
let result = Number(new Date("2012-02-10T13:19:11+0000"));
let resultWithGetTime = (new Date("2012-02-10T13:19:11+0000")).getTime();
console.log(result);
console.log(resultWithGetTime);
Điều này chuyển đổi thành mili giây giống như getTime()
trên Date
đối tượng
var date = new Date()
console.log(" Date in MS last three digit = "+ date.getMilliseconds())
console.log(" MS = "+ Date.now())
Sử dụng điều này, chúng tôi có thể nhận được ngày trong mili giây
var date = new Date (date_string); var miliseconds = date.getTime ();
Điều này đã làm việc cho tôi!
Trong trường hợp nếu ai đó chỉ muốn lấy Thời gian từ ngày ISO, thì cách làm sau sẽ hữu ích. Tôi đã tìm kiếm điều đó và tôi không thể tìm thấy câu hỏi cho nó. Vì vậy, trong trường hợp một số người nhìn thấy sẽ hữu ích.
let isoDate = '2020-09-28T15:27:15+05:30';
let result = isoDate.match(/\d\d:\d\d/);
console.log(result[0]);
Đầu ra sẽ là thời gian duy nhất từ isoDate là,
15:27