Seperti yang dikatakan dalam komentar, saya percaya ini sebagian besar tergantung pada preferensi pribadi. Di mata saya, penggunaan stempel waktu Unix dan antarmuka non-OOP "warisan" bukanlah cara untuk melakukannya di masa depan di dunia saat ini, misalnya, kami tidak (baca:tidak boleh) menggunakan INT
tipe data di database kami untuk menyimpan tanggal dalam format Unix Timestamp, kami seharusnya menggunakan tipe asli database yang biasanya DATE
atau DATETIME
jenis yang bekerja sama dengan DateTime
PHP objek (dan bahasa lain') hampir secara native dalam hal konversi standar.
Untuk menguraikan sedikit tentang apa yang saya maksud dengan konversi standar:Saat Anda menggunakan MySQL dan menarik kembali nilai ke PHP, Anda mendapatkan string tanggal berformat ISO, di antaranya DateTime
class mem-parsing di konstruktornya memberi Anda objek yang langsung dapat digunakan. Sebaliknya, untuk pergi ke rute cap waktu Unix Anda harus menggunakan strtotime
, lalu date
untuk memasukkannya ke dalam format apa pun yang Anda inginkan secara asli.
Saya sebutkan sebelumnya tentang interop antara sistem PHP kami dan sistem .NET. Meskipun tidak ada masalah khusus yang disebabkan oleh penggunaan stempel waktu, itu bukan solusi praktis, karena sekali lagi, kami menggunakan database yang mengembalikan nilai DateTime yang dapat dikirim langsung ke pipa. Jika kita mengonversi ini ke cap waktu unix untuk digunakan secara internal di PHP, kita juga harus mengubahnya kembali jika kita ingin mengirim respons, atau mengirim respons ke Aplikasi .NET (atau haruskah saya mengatakan API dalam hal ini) itu adalah stempel waktu, dan mengubahnya di akhir. Dengan menggunakan DateTime
secara keseluruhan, ini mengurangi kebutuhan untuk konversi apa pun yang terjadi dan seluruh proses pengembangan menjadi lebih mudah.
Akhirnya untuk menambahkan semua ini, seperti yang juga Anda sebutkan di posting Anda, Anda bisa menggunakan item mengkilap seperti DateInterval
, pembagian waktu yang lebih mudah, manipulasi yang lebih mudah, dan pemformatan yang lebih mudah, dll. saat Anda menggunakan DateTime
dan itu terkait mitra berorientasi objek dalam kejahatan. Ini hanya proses pengembangan yang lebih mudah di mata saya.
Saya tidak percaya karena saya awalnya mengatakan bahwa ada jawaban yang "benar" untuk ini, hanya lebih dari preferensi pribadi berdasarkan gaya pengkodean Anda sendiri, dan komentar di atas mencerminkan milik saya.
- Saya tidak percaya begitu. Apalagi dengan skrip PHP yang umumnya merupakan proses yang berjalan singkat.
Iya :)
Lihat komentar di atas pada basis data, bukan "asli" untuk menggunakan Stempel Waktu Unix untuk tujuan ini IMO. Anda cukup menelepon ->getTimezone
dan simpan ini di database, lalu gunakan ->setTimezone
saat Anda menariknya kembali.