2011-01-13 22 views
15

Tôi chắc chắn có lý do tôi phải thêm ba số không vào mọi dấu thời gian Unix trong JavaScript để có được ngày chính xác. Bạn có thể cho tôi biết tại sao? Nó đơn giản như mili giây kể từ kỷ nguyên so với giây?Tại sao tôi cần nhân các dấu thời gian unix lên 1000 trong JavaScript?

+1

Vì chúng sử dụng các đơn vị đo lường khác nhau? – spender

+0

Cảm ơn mọi người. Tôi biết nó phải là một cái gì đó hợp lý. Câu hỏi tiếp theo của tôi sẽ là những gì có thể là các quyết định thiết kế khoảng mili giây so với giây do tính không nhất quán. – buley

+0

Làm thế nào về bạn lần đầu tiên upvote câu trả lời hữu ích và chấp nhận câu trả lời giải quyết tốt nhất câu hỏi của bạn? – Phrogz

Trả lời

24

Vì Javascript sử dụng mili giây trong nội bộ, trong khi dấu thời gian UNIX bình thường thường tính bằng giây.

+0

Liệu điều này có tương đương với việc mất dữ liệu không? Lỗi làm tròn số – Edward

+0

Phép nhân không nên mất bất kỳ thứ gì, thậm chí Loại không rõ ràng của JavaScript không-a-float-is-a-float 'Number' sẽ có khả năng làm điều đó mà không làm tròn lỗi. Phân chia mặt khác rõ ràng ít nhất sẽ mất bạn phần mili giây, mà các dấu thời gian UNIX thông thường không thể diễn tả dù sao. – deceze

4

Javascript sử dụng số mili giây từ thời đại. Dấu thời gian Unix là giây kể từ thời đại.

Do đó, cần thiết phải chuyển đổi Unix timestamp vào millseconds trước khi sử dụng nó trong Javascript

3

thời gian Unix là số giây kể từ khi kỷ nguyên (01 tháng 1 năm 1970). Trong Javascript, đối tượng Date dự kiến ​​số mili giây kể từ thời đại, do đó có sự khác biệt gấp 1000 lần.

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