Câu trả lời:
var seconds = new Date() / 1000;
Hoặc, đối với phiên bản ít hack hơn:
var d = new Date();
var seconds = d.getTime() / 1000;
Đừng quên Math.floor()hoặc Math.round()làm tròn đến số nguyên gần nhất hoặc bạn có thể nhận được một số thập phân rất kỳ lạ mà bạn không muốn:
var d = new Date();
var seconds = Math.round(d.getTime() / 1000);
Number(new Date())để lấy số hoặc thậm chí +(new Date())hoặc sử dụng bất kỳ trường hợp Ngày nào trong ngữ cảnh số như new Date()/1000Javascript sẽ chuyển đổi một cách hữu ích thể hiện Ngày đó thành một số để làm việc với các phương trình toán học của bạn.
Thử cái này:
new Date().getTime() / 1000
Bạn có thể muốn sử dụng Math.floor()hoặc Math.round()cắt phần mili giây.
Bạn muốn vài giây kể từ epoch
function seconds_since_epoch(){ return Math.floor( Date.now() / 1000 ) }
sử dụng ví dụ
foo = seconds_since_epoch();
Các giải pháp trên sử dụng các thuộc tính thể hiện. Một cách khác là sử dụng thuộc tính lớp Date.now:
var time_in_millis = Date.now();
var time_in_seconds = time_in_millis / 1000;
Nếu bạn muốn time_in_seconds là một số nguyên, bạn có 2 tùy chọn:
a. Nếu bạn muốn phù hợp với cắt ngắn kiểu C:
time_in_seconds_int = time_in_seconds >= 0 ?
Math.floor(time_in_seconds) : Math.ceil(time_in_seconds);
b. Nếu bạn muốn có định nghĩa toán học về phép chia số nguyên để giữ, chỉ cần lấy sàn. (Phân chia số nguyên của Python thực hiện điều này).
time_in_seconds_int = Math.floor(time_in_seconds);
Nếu bạn chỉ muốn một giây là toàn bộ số mà không có số thập phân biểu thị mili giây vẫn được đính kèm, hãy sử dụng:
var seconds = Math.floor(new Date() / 1000);
Cách ưa thích của tôi:
var msEpoch = (+new Date());
var sEpoch = (+new Date()) / 1000;
Để biết thêm thông tin về việc + nhảy xuống hố thỏ .
Phiên bản đơn giản nhất:
Math.floor(Date.now() / 1000)
Trong chrome, bạn có thể mở bàn điều khiển bằng F12 và kiểm tra mã sau:
var date = new Date().getTime()
console.debug('date: ' + date);
if (Date.now() < date)
console.debug('ko');
else
console.debug('ok');
EPOCH means time from 01 January 1970
var date = new Date();
Following line will return the number of milliseconds from 01 Jaunary 1970
var ms = date.getTime();
Following line will convert milliseconds to seconds
var seconds = Math.floor(ms/1000);
console.log("Seconds since epoch =",seconds);
var seconds = new Date() / 1000;<- loại ma thuật phức tạp này là gì?