Model Laravel kadangkala menukar objek Carbon dan tidak boleh menggunakan objek jenis Carbon\Carbon sebagai ralat tatasusunan
P粉125450549
2023-08-30 13:56:16
<p>Saya sedang melakukan beberapa manipulasi rentetan untuk melakukan penukaran zon masa daripada pangkalan kod lama. </p>
<p>Saya perlu meletakkan <kod>T</kod> antara tarikh dan masa, saya menggunakan logik berikut untuk melakukan ini. </p>
<pre class="brush:php;toolbar:false;">$check_in= $model->checkin_date_time; // 2022-12-12 22:22:22
$check_in[10] = 'T'; // 12-2022T22:22:22</pre>
<p>Atas sebab tertentu saya mendapat ralat ini. </p>
<pre class="brush:php;toolbar:false;">Tidak boleh menggunakan objek jenis CarbonCarbon sebagai tatasusunan</pre>
<p>Tetapi ini tidak selalu berlaku. Hanya 1-2 ralat setiap 2000 - 3000 permintaan. </p>
<p>Saya menggunakan Karbon di tempat lain (walaupun di bahagian lain fungsi yang sama) tetapi tanpa sebarang penukaran sifat <kod>$model</kod> </p>
<p>Saya tidak pasti mengapa <kod>$model->checkin_date_time</code> </p>
$model->checkin_date_time
不是"2022-12-12 22:22:22"
它是一个 Carbon(DateTime 的子类)对象。当您尝试将其转换为字符串(使用echo
、任何类型的显示或将其注入另一个字符串中时,它会自动格式化为Y-m-d h:i:s
Jika anda ingin mengeluarkan dalam format lain, sila gunakan kaedah
->format()
:Apa pun, menggunakan offset (
$check_in[10] =
sintaks) untuk mengubah suai huruf dalam rentetan adalah idea yang tidak baik dan pengoptimuman mikro ini tidak berbaloi.