Bu dizeleri 'YYYY-AA-GG' kurallı biçimde tarih olarak doğrulanma verilen, karşılaştırma yapmak için zaman damgası dönüştürmek için gerekli değildir.
Bu test çalışacaktır:
( ( $date_from_user >= $start_date ) && ( $date_from_user <= $end_date ) )
Verilen:
$start_date = '2009-06-17';
$end_date = '2009-09-05';
$date_from_user = '2009-08-28';
NOT: "geçerli olmayan" örneğin Tarihleri için böyle karşılaştırma dizeleri izin yok (Aralık 32) '2009-13-32 've esrarlı biçimlendirilmiş dizeleri için '2009 / 3/3' dize karşılaştırma bir tarih veya zaman damgası karşılaştırma eşdeğer olmayacaktır böyle. Dizeleri tarih değerleri CONSISTENT olan ve CANONICAL biçiminde SADECE olursa çalışır.
EDIT bariz tertipleyerek, burada bir not eklemek için.
Ay her zaman, iki karakter olmalıdır gün her zaman iki karakter olmalı ve ayırıcı karakteri her zaman bir çizgi olmalıdır: By CONSISTENT, ben karşılaştırılan dizeleri aynı formatta olması gerektiğini, örneğin anlamına gelir. Biz güvenilir dört karakter yıl, iki karakter ay, iki karakter bir gün değil "dizeleri" karşılaştırmak olamaz. Biz bir karakter ve dizeleri iki karakter aylık bir karışımı vardı, örneğin, biz göre beklenmeyen bir sonuç almak istiyorum, '2009-9-30'
için '2009-10-11'
. Biz insanca "10" daha az olarak "9" görmek, ama bir dize karşılaştırması '2009-9'
daha büyük olarak görürsünüz '2009-1'
. Biz mutlaka bir çizgi ayırıcı karakter olması gerekmez; biz sadece güvenilir 'YYYYMMDD'
formatında dizeleri karşılaştırmak olabilir; bir ayırıcı karakter varsa, o zaman orada olacağız ve hep aynı olmak zorundadır.
Tarafından CANONICAL, ben demek tarih sırasına göre sıralanır dizeler sonuçlanacak bir biçimi. Bu dize "gün" daha sonra "ay", ilk "yılın" bir temsil olacak, olduğunu. Bu kurallı değil çünkü güvenilir, 'MM-DD-YYYY'
biçiminde dizeleri karşılaştırmak olamaz. O YYYY
(yıl) göre daha önce dize karşılaştırma soldan sağa çalışır beri bir dize karşılaştırma MM
(ay) karşılaştırmak istiyorsunuz.) Ait 'YYYY-AA-A büyük yarar DD 'dizge biçimi kurallı olduğunu; Bu biçimde temsil tarihleri güvenilir dizeleri olarak mukayese edilebilir.
[EK]
Eğer php damgası dönüşüm için gitmek yaparsanız, sınırlarının farkında olmak.
Bazı platformlarda, php önceki 1970/01/01 ve / veya daha sonraki 2038/01/19 daha fazla zaman damgası değerlerini desteklemiyor. (Yani unix timestamp 32-bit tamsayı doğasında var.) Sonraki sürümleri (5.3?) Php pf o adrese gerekiyor.
Geri dize zaman damgası damgası ve dizeden dönüştürürken, aynı zaman dilimini kullanmak için dikkatli değilseniz dilimi de, bir sorun olabilir.
HTH