2009-07-21 34 views
6

Làm cách nào để tìm dấu thời gian unix của nửa đêm của Thứ Tư trước? Cách tiếp cận duy nhất của tôi là lấy chỉ số ngày và số ngày hôm nay, và trừ đi sự khác biệt, nhưng tôi có thể nghĩ về một số tình huống mà điều này sẽ thất bại, ví dụ, sớm trong một tháng trước khi một ngày thứ Tư diễn ra.Nhận dấu thời gian unix của nửa đêm vào Thứ Tư trước đó

Tôi đoán, chính xác hơn, làm cách nào để tìm ngày của Thứ Tư trước?

Mọi trợ giúp sẽ được đánh giá cao.

+0

Bạn đang tìm kiếm nửa đêm theo giờ địa phương, hoặc nửa đêm UTC? –

Trả lời

5

Còn khoảng strtotime thì sao?

$timestamp = strtotime("last Wednesday"); 

var_dump($timestamp); 
var_dump(date('Y-m-d H:i:s', $timestamp)); // to verify 

Và bạn sẽ có được kết quả này:

int 1247608800 
string '2009-07-15 00:00:00' (length=19) 

mà thực sự là thứ tư cuối cùng, nửa đêm.

4

Nó dễ dàng hơn bạn nghĩ ... quan sát hỏa lực tuyệt vời của này hoạt động đầy đủ chiến trạm , er, ý tôi là strtotime

$t=strtotime("last wednesday"); 

echo strftime("%d %b %Y %H:%M:%S", $t); 

chí này ra

15 Jul 2009 00:00:00 

nào, tại thời điểm viết, là ngày thứ tư cuối cùng :)

0

Bạn muốn "đúng" như thế nào? Nếu bạn muốn có độ chính xác cao, bạn sẽ cần tính đến thời gian tiết kiệm ánh sáng ban ngày, múi giờ, năm nhuận, v.v. Điều này có nghĩa là sử dụng thư viện chứ không phải chỉ trừ các chỉ mục ngày.

Tôi không hiện đang làm PHP nhưng tôi đã từng có may mắn với các thư viện Pear: đây là những docs cho lớp Lịch

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