1
votes

Laravel Carbon Date ajouter 7 minutes

Ma requête renvoie une chaîne de date

"13 Jul, 08:07AM"

Ensuite, je l'explose

\Carbon\Carbon::parse($datetimes[0])->format('d M, H:mA')

Puis j'obtiens quand je DD

XXX

Lorsque j'utilise Carbon pour formater la chaîne

"07/13/2020 8:00 AM"

Il renvoie

$datetimes = explode(' - ', $request->datetimes);

Pourquoi cela se produit-il?


2 commentaires

Avez-vous essayé d'utiliser Carbon :: createFromFormat ('' m / d / Y g: i A ", $ datetimes [0])?


Quelle est l'attente de production ? identique à ce 13/07/2020 08h07


3 Réponses :


0
votes

Parce qu'il convertit la date du format américain MM / JJ / AAAA au lieu du JJ / MM / AAAA courant

C'est pourquoi lors de la gestion des formats de date, il est plus sûr d'utiliser le format de date mysql AAAA / MM / JJ

c'est ainsi que strtotime fonctionne en php, si le jour est un mois valide, il utilisera le format MM / JJ / AAAA.

une astuce simple consiste à remplacer le / avec - pour le forcer.

\Carbon\Carbon::parse(str_replace('/', '-', $datetimes[0]))


1 commentaires

Hey, merci! Quand je lance: dd (\ Carbon \ Carbon :: parse (str_replace ('/', '-', $ datetimes [0])) -> format ('d M, H: m A')); Il renvoie: Impossible d'analyser '07 -13-2020 8:00 AM ': DateTime :: __ construct (): Impossible d'analyser la chaîne de temps (13/07/2020 8h00) à la position 0 (0): caractère inattendu



0
votes

J'utilisais "m" pour le mois au lieu de "i" pour les minutes ...


1 commentaires

Haha. Je dois aimer ceux-là.



0
votes

Pouvez-vous s'il vous plaît essayer

07/13/2020 8:07AM

Sortie

Route::get('convert',function(){
    $myString = "07/13/2020 8:00 AM - 07/17/2020 5:00 PM";
    $dateTimes = explode(' - ', $myString);
    $paseDateTime = \Carbon\Carbon::createFromFormat('m/d/Y g:iA',$dateTimes[0])->addMinutes(7)->format('m/d/Y g:iA');
    return $paseDateTime;
});


0 commentaires