recherche

Maison  >  Questions et réponses  >  le corps du texte

Les modèles Laravel convertissent parfois des objets Carbon et ne peuvent pas utiliser des objets de type Carbon\Carbon comme erreurs de tableau

<p>Je fais quelques manipulations de chaînes pour effectuer des conversions de fuseau horaire à partir d'une ancienne base de code. </p> <p>Je dois mettre <code>T</code> entre la date et l'heure, j'utilise la logique suivante pour ce faire. </p> <pre class="brush:php;toolbar:false;">$check_in= $model->checkin_date_time; // 2022-12-12 22:22:22 $check_in[10] = 'T'; // 2022-12-12T22:22:22</pre> <p>Pour une raison étrange, j'obtiens cette erreur. </p> <pre class="brush:php;toolbar:false;">Impossible d'utiliser un objet de type CarbonCarbon comme tableau</pre> <p>Mais ce n’est pas toujours le cas. Seulement 1 à 2 erreurs pour 2 000 à 3 000 requêtes. </p> <p>J'utilise Carbon ailleurs (même dans d'autres parties de la même fonction) mais sans aucune conversion de la propriété <code>$model</code> </p> <p>Je ne sais pas pourquoi <code>$model->checkin_date_time</code> est converti en objet Carbon. </p>
P粉125450549P粉125450549460 Il y a quelques jours509

répondre à tous(1)je répondrai

  • P粉011684326

    P粉0116843262023-08-31 09:37:41

    $model->checkin_date_time 不是 "2022-12-12 22:22:22" 它是一个 Carbon(DateTime 的子类)对象。当您尝试将其转换为字符串(使用 echo、任何类型的显示或将其注入另一个字符串中时,它会自动格式化为 Y-m-d h:i:s

    Si vous souhaitez sortir dans un autre format, veuillez utiliser la méthode ->format() :

    $check_in = $model->checkin_date_time->format('Y-m-d\Th:i:s');
    

    De toute façon, utiliser des offsets ($check_in[10] = syntaxe) pour modifier les lettres d'une chaîne est vraiment une mauvaise idée et cette micro-optimisation n'en vaut pas la peine.

    répondre
    0
  • Annulerrépondre