PHP sana va vaqt (date, DateTime)
Buyurtma sanasi, foydalanuvchi yoshi, “3 daqiqa oldin” yozuvi, hisobot oralig’i — bularning barchasi sana bilan ishlashni talab qiladi.
date — hozirgi sana
date() birinchi argument sifatida format oladi — har harf o’z ma’nosiga
ega.
Format belgilari
Belgilangan sanani formatlash
strtotime — matndan sana
Ingliz tilidagi tabiiy yozuvni tushunadi — hisobot oralig’i hisoblashda juda qulay.
DateTime — zamonaviy usul
DateTime obyekt bo’lgani uchun zanjir qilib ishlatish va uzatish qulay.
O’zgarmas versiya
Sanalar farqi
diff ikki sana orasidagi farqni DateInterval obyekti sifatida beradi.
Yosh hisoblash
diff(...)->y faqat to’liq yillarni beradi — tug’ilgan kun hali
kelmagan bo’lsa, hisobga olmaydi.
Sana qo’shish va ayirish
DateInterval yozuvi: P — davr, Y/M/D — yil/oy/kun, T dan keyin
H/M/S — soat/daqiqa/soniya. Amalda modify() o’qishga osonroq.
Taqqoslash
Sana obyektlarini oddiy < va > bilan solishtirish mumkin.
Vaqt zonasi
“Necha vaqt oldin”
Izohlar va xabarlar ro’yxatida ko’p ishlatiladigan naqsh.
Tekshirish
createFromFormat natijasini qayta formatlab solishtirish — sanani
tekshirishning ishonchli usuli.
Amaliy mashq
- Bugungi sanani uch xil formatda chiqaring;
strtotime("+1 week")bilan kelasi haftani toping;DateTimeImmutablebilan sanaga 1 oy qo’shing;- ikki sana farqini
diffbilan hisoblang; - tug’ilgan sanangizdan yoshingizni hisoblang;
DateTimevaDateTimeImmutablefarqini sinab ko’ring.
6-qadam eng muhim farqni ko’rsatadi.
Qisqacha xulosa
date("format")hozirgi sanani formatlaydi:Y,m,d,H,i,s.- Timestamp — 1970-yildan beri o’tgan soniyalar.
strtotimetabiiy matndan sana yasaydi:"+1 day","next monday".DateTimeImmutableafzal —DateTimeo’zini o’zgartiradi.diff()sanalar farqini beradi (->y,->m,->d,->days).- Sanalarni
<va>bilan solishtirish mumkin. - Ko’p zonali loyihada UTC saqlang, ko’rsatishda o’giring.
Keyingi darsda forma bilan ishlash — PHP eng ko’p ishlatiladigan joy.