2012-06-23 35 views

Trả lời

12

Chỉ cần tạo một đối tượng Date từ nó và làm .getTime() hoặc sử dụng Date.parse():

var d = new Date("Wed Jun 20 19:20:44 +0000 2012"); 
d.getTime(); //returns 1340220044000 

//OR 

Date.parse("Wed Jun 20 19:20:44 +0000 2012"); //returns 1340220044000 

Các công trình lớn nếu "thời gian của con người" của bạn chuỗi là trong một định dạng mà các nhà xây dựng ngày hiểu (mà ví dụ bạn được đăng là).


EDIT

Nhận ra bạn có thể có nghĩa là một dấu thời gian Unix, đó là giây trôi qua kể từ kỷ nguyên (không ms như timestamps JS). Trong trường hợp đó chỉ đơn giản là chia timestamp JS bởi 1000:

//if you want to truncate ms instead of rounding just use Math.floor() 
Math.round(Date.parse("Wed Jun 20 19:20:44 +0000 2012")/1000); //returns 1340220044 
+0

Cung cấp "Ngày không hợp lệ" cho tôi. –

+0

Hoạt động tốt cho tôi: http://jsfiddle.net/sv9p3/ – Chad

+0

'NaN' trên cả hai số. Điều này là do địa phương, và chính xác là lý do tại sao phân tích chuỗi con người là một vấn đề như vậy. –

5

Về lý thuyết, với Date.parse(). Tuy nhiên, trong thực tế, với hàng ngàn cách khác nhau để biểu thị ngày tháng và thời gian (ít nhất là tên của ngày/tháng theo các ngôn ngữ khác nhau), nó dễ dàng hơn để có được ngày trong các bộ phận cấu thành của nó thay vì cố đọc chuỗi.

0

Có vẻ như ngày/giờ bạn đã cung cấp chỉ trong vài giây không phải là mili giây. Vì vậy, bạn sẽ cần chia cho 1000 để nhận ngày/giờ tính bằng giây.

//Gets date in seconds 
var d1 = Date.parse('Wed Jun 20 19:20:44 +0000 2012')/1000; 
alert(d1); 

Ví dụ: http://jsfiddle.net/AUt9K/

0

Chỉ cần thêm sau: new Date().getTime()

này sẽ giúp bạn dấu thời gian của thời điểm hiện tại. Ví dụ: var url = "http://abc.xyz.com/my-script.js?v=" + new Date().getTime();

Các vấn đề liên quan