PHP DateTime __construct() Gagal mengurai waktu string (xxxxxxxx) pada posisi x
Saya memiliki konstruksi ini kesalahan ketika mencoba untuk membuat yang baru DateTime objek menggunakan timestamp:
Pengecualian: DateTime::construct(): Failed to parse waktu string (1372622987) di posisi 8 (8): karakter tak Terduga di DateTime->construct()
Objek penciptaan kode ini:
$start_date = new DateTime( "@{$dbResult->db_timestamp}" );
Di mana $dbResult->db_timestamp adalah valid unix timestamp diambil dari database. Timestamp tersebut adalah:
1372622987
Saya akan memahami kesalahan ini untuk invalid format yang berlalu, tapi ini adalah asli timestamp.
Alasan ini sangat aneh: aku karena berlari script untuk membuat new DateTime objek dengan timestamp lulus sebagai nilai kode keras, dan dilaporkan tidak ada kesalahan.
Hal ini tampaknya telah menjadi salah satu off, tapi aku butuh penjelasan jika ada satu, seperti yang saya dapat't membiarkan ini terjadi lagi.
Anda harus menggunakan setTimestamp sebaliknya, jika anda hardcode ini:
dalam kasus anda
Gunakan
createFromFormat
metode:$start_date = DateTime::createFromFormat(“U“, $dbResult->db_timestamp);
UPDATE
Saya saat ini merekomendasikan penggunaan Karbon
mengubah kode ini
dan itu akan bekerja dengan baik
Ini bekerja untuk saya.