2010-08-13 32 views
5

Trong hầu hết các ngôn ngữ lập trình hoặc kịch bản như PHP hoặc JavaScript, tôi đã đi qua hàm thời gian có xu hướng tính toán thời gian từ năm 1970. ví dụ trong javascript nếu tôi sử dụng hàm getTime() hoặc trong PHP thời gian() nó trả về một giá trị số nguyên.tại sao chúng ta cần tính toán thời gian từ năm 1970?

Trong PHP.

mã với <?php echo time(); ?> trả về giá trị số nguyên là 1281694425, giá trị PHP trả về là gì? làm thế nào và khi nào nó hữu ích?

giống nhau trong javascript getTime() trả về giá trị nổi từ năm 1970 như đã nói. bằng cách sử dụng tập lệnh bên dưới trong JS

<script type="text/javascript"> 
var d=new Date(); 
document.write(d.getTime() + " milliseconds since 1970/01/01"); 
</script> 

tôi muốn biết khi nào loại chức năng này hữu ích để sử dụng? và chúng ta sử dụng nó như thế nào?

P.S: có hữu ích khi tính toán khoảng thời gian không? hoặc nó được sử dụng để lưu trữ tem thời gian hiện tại?

+1

Câu hỏi của bạn là gì? Tại sao thời đại kỷ nguyên được sử dụng, hoặc cách sử dụng chúng? – Oded

+0

cả hai. tôi có nghĩa là khi nào là chức năng hữu ích (ví dụ: tem thời gian hiện tại, vv). và làm cách nào để sử dụng nó nếu nó trả về giá trị theo mili giây? –

Trả lời

7

Nó cung cấp cho bạn những giây mà trôi qua kể từ khi 01 tháng 1 năm 1970. Đây là fore hữu ích nhiều lý do:

  1. Sorting của ngày cũng đơn giản như sắp xếp các số nguyên.
  2. Dễ dàng để có được độ dài của một khoảng thời gian, đơn giản làm t1-t2 và bạn sẽ nhận được sự khác biệt trong vài giây nữa.
  3. Không cần xử lý các định dạng ngày khác nhau (như MM/DD/YY hoặc DD/YY/MM): Mỗi ngôn ngữ lập trình và mọi cơ sở dữ liệu đều hỗ trợ các số nguyên.
+0

vì vậy về cơ bản bạn có nghĩa là để nói nó được sử dụng để lưu trữ sự khác biệt thời gian hoặc khoảng thời gian và không phải là tem thời gian hiện tại? –

+1

Thay vào đó, dấu thời gian là khoảng thời gian giữa điểm tham chiếu và thời gian khác. Ví dụ, năm 2010 là hai nghìn và mười năm sau một sự kiện đáng chú ý. d.getTime() trả về số mili giây sau 1970/01/01. 1281694425 * là * dấu thời gian. – Douglas

+0

Một điều cần lưu ý - các dấu thời gian như vậy đại diện cho một ** thời gian ngay lập tức **. Điều này dễ nhầm lẫn khi bạn phải thực hiện các phép tính ở cấp ngày tháng. Mặc dù có vẻ dễ sử dụng dấu thời gian như vậy để lưu trữ ngày (chỉ cần đặt đồng hồ thành 00:00), nhưng nó nhanh chóng trở nên khó xử khi múi giờ được giới thiệu và/hoặc một số giá trị tham gia tính toán không phải lúc 00:00. Vì vậy, nếu bạn cần lưu trữ và làm việc với ngày tháng, tôi muốn giới thiệu một loại dữ liệu khác (hoặc rất nhiều cảnh báo). –

1

Điều đó có nghĩa là nếu bạn tính toán lại thời gian từ số nguyên trong múi giờ khác, bạn sẽ nhận được thời gian chính xác cho bất kỳ múi giờ nào đang truy cập. Tôi tin rằng :-)

+0

có phải bạn muốn nói nó hữu ích trong khi tính toán các khoảng thời gian? hoặc nó có thể được sử dụng để lưu trữ tem thời gian hiện tại không? –

+0

Có, bạn có thể sử dụng nó làm dấu thời gian. – Dom

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