2010-03-05 8 views
19

Mỗi lần trong PHP khi tôi thực hiện một biến như thế này một:gì đã xảy ra vào ngày 31 Tháng 12 năm 1969 lúc 7:00 PM

$date = strtotime($row['date']); 
$date = date("M d Y \a\\t g:i A", $date); // Mmm dd YYYY at h:mm PM/AM 

và bằng cách nào đó row['date'] sẽ xảy ra là 0, ngày Dec 31 1969 at 7:00 PM được hiển thị trên màn? Google không cho tôi biết nhiều, tôi đã tự hỏi nếu ngày này có bất kỳ ý nghĩa nào.

+7

Một mặt bạn có lỗi "epic", mặt khác bạn có lỗi 'epoch' :) –

Trả lời

36

Các Unix kỷ nguyên là thời điểm 00:00:00 UTC vào ngày 01 tháng 1 năm 1970. Đây là điểm tham chiếu cho tất cả các tem thời gian. Khi bạn sử dụng các hàm ngày/giờ của PHP, bạn luôn làm việc với số giây kể từ thời đại. Thời gian 0 là kỷ nguyên, và bạn (hoặc máy chủ web của bạn) phải ở bờ biển phía đông của Hoa Kỳ, đó là 5 giờ sau giờ UTC.

1

Một định dạng trong đó các đối tượng ngày được lưu trữ là thời gian tính bằng giây đã trôi qua từ thời gian bắt đầu tùy ý. Yêu cầu phiên bản có định dạng "0" giống như yêu cầu thời gian bắt đầu tùy ý đó. Tôi không nhớ tại sao ngày đó lại được chọn, nhưng tôi chắc là Wikipedia đã làm. Xem bài viết về thời gian Unix bên dưới.

Read about Unix Time

5

Unix timestamps được đo trong "thời gian từ Unix Epoch", là nửa đêm GMT vào cuối ngày 31 tháng 12 năm 1969 (giờ sáng 00:00 GMT ngày 1 tháng 1 năm 1970). Vì bạn có vẻ là Giờ Chuẩn miền Đông, tức là GMT-5, bạn nhận được 7 giờ tối ngày 31 tháng 12 năm 1969 cho giá trị dấu thời gian unix là 0.

2

Hãy để tôi đoán: bạn sống ở bờ biển phía đông của Hoa Kỳ?

PHP, giống như nhiều hệ thống khác sử dụng Unix epoch để đo thời gian, tức là giá trị 0 đại diện cho ngày 1 tháng 1 năm 1970, nửa đêm UTC - tương tự như ngày 31 tháng 12 năm 1969 lúc 7:00 chiều theo giờ chuẩn miền đông.

12

Tôi thấy thật buồn cười khi không có một câu trả lời nào ở đây cố trả lời câu hỏi thực tế của bạn, đó là (nếu tôi có thể diễn giải) "Ý nghĩa của ngày thực tế của thời đại Unix" là gì?

Tôi không phải là một chuyên gia về chủ đề này, nhưng về cơ bản, như tôi đã hiểu, khái niệm thời đại thời đại đã được phát minh vào năm 1971. Các lập trình viên đã chọn ngày tùy ý ngày 1 tháng 1 năm 1971 giờ GMT. Điều này một phần là do thực tế rằng các máy tính cũ không thể xử lý số lượng lớn nên ngày phải ở trong quá khứ gần đây. Sau đó, thời gian epoch được điều chỉnh là ngày 1 tháng 1 năm 1970 để trở thành một số tròn đẹp.

Vì vậy, về cơ bản, không có gì "đã xảy ra" vào ngày đó. Đó là một ngày tùy ý được chọn dựa trên thời gian ban đầu của công việc đang được thực hiện.