2010-11-20 35 views
9

làm cách nào tôi có thể làm việc với các ngày trước ngày 01/01/1970?Dấu thời gian Unix trước năm 1970 (thậm chí trước năm 1700), sử dụng PHP

tôi cần lấy ngày đầu tiên của tháng cho các ngày từ năm 1700.

làm cách nào tôi có thể đạt được điều đó?

cảm ơn bạn trước!

+0

bạn có thể cung cấp một ví dụ về dữ liệu đầu vào và kết quả mong đợi? –

+1

Đây có phải là ngày trong lịch Julian hoặc lịch Gregorian không? – PleaseStand

+3

Bạn có thể đang sử dụng phiên bản PHP cũ. PHP4 phải chết. Các phiên bản của PHP sau 5.1 không có hạn chế năm 1970. Nó đã được thay đổi kể từ năm 1901. – stillstanding

Trả lời

15

Bạn có thể sử dụng DateTime.

Ví dụ:

<?php 
$d = new DateTime("1780-06-01"); 
echo $d->format("l"); //Thursday 

Bạn nên, tuy nhiên, hãy xem xét rằng Lịch Gregorian là adopted trong khoảnh khắc khác nhau trên khắp thế giới.

+3

'DateTime' là tương lai. +1. Lưu ý rằng bạn cần PHP 5.3 để tận hưởng một số 'DateTime' goodness (khoảng thời gian, CreateFromFormat và như vậy). Nếu nghi ngờ, hướng dẫn sẽ cho bạn biết phiên bản yêu cầu –

+1

Ngày giờ không thể đi trước năm 1901 trong mọi trường hợp. $ date = new DateTime ('1869-01-01 07:00:00'); echo $ date-> format ('U'); << Công trình này. $ date-> setTimestamp (-3187208524); echo $ date-> format ('Y-m-d H: i: s'); << Điều này không hiệu quả! – vee

+1

@vee hoạt động ở đây (5.5.9). Có lẽ bạn đang sử dụng một bản dựng 32 bit của PHP? Hãy thử chuyển dấu thời gian làm phao thay thế ('-3187208524.'). – Artefacto

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