0
votes

Comment convertir correctement une chaîne "3/6/2019 3:40:19" à un type DateTime Laravel / Eloquent?

J'ai une chaîne "3/6/2019 3:40:19" que je veux convertir en un type DateTime Laravel / Eloquent.

Y a-t-il un moyen de le faire sans récupérer toutes les petites pièces de la chaîne et reconstruire à nouveau au format souhaité?


2 commentaires

Pouvez-vous partager plus de détails? Dans quelles parties de votre code voulez-vous exécuter une telle transformation?


Est 3/6 le 6 mars ou le 3 juin?


3 Réponses :


4
votes

Vous pouvez utiliser du carbone, qui fait déjà partie de toute installation Laravel.

http : //carbon.nesbot.com/docs/#api-geters

Si vous avez une chaîne DateTime et que vous souhaitez l'utiliser avec un Carbon instance peut faire: xxx

alors vous pouvez faire quelque chose comme: xxx


4 commentaires

Si les cordes qu'il reçoit est "3/6/2019 3:40:19" Vous êtes un peu tromper en le réglant à "2016-11-01 15:04:19"


@RiccardOcédrola Ouais. Carbon's CreateFromFormat aidera ici. J'ai édité que dans.


Utiliser des données inattendues au carbone trouvées. Données inattendues trouvées. Données inattendues trouvées. Données de fin -


@zwitterion Votre format n'est pas Y-M-D H: M: S . J'ai donné le format correct (et le code exact qui fonctionne pour votre chaîne de date / heure spécifique) dans la réponse.



1
votes

Utilisez le php strtotime () fonction.
strtotime ($ string)

Et si vous souhaitez modifier le format, vous pouvez utiliser la date () fonction.
Date ('Y-M-D H: I: S', Strtotime ($ string))

Cela vous permet d'économiser les problèmes d'installation de nouvelles bibliothèques et vous pouvez modifier le format de date de n'importe quelle manière que vous souhaitez à la fonction de date


6 commentaires

Vous devez mettre h: i: s au lieu de h: i: s , sinon strtotime () ne pars pas le "PM"


Ahh oui merci de l'avoir pointé sur @RiccardOcédrola, je l'ai manqué


Vous avez upéré de toute façon, vous répondez est correct pour moi :)


Strtotime MAI Générer la mauvaise date, car 3/6 de l'OP pourrait être le 6 mars ou le 3 juin, selon le pays. En ce qui concerne les "nouvelles bibliothèques", Laravel inclut le carbone comme composant de base.


Je suis d'accord, il est toujours plus sûr de définir le format de la date à laquelle vous passez en tant que chaîne, de sorte que l'utilisation de datetime :: CreatefromFormat carbone :: CreatefromFormat C'est toujours plus sûr , Mais je pense qu'il pouvait facilement le comprendre en regardant les docs, sans que personne ne lui donnent un "code prêt"


Et oui les gars ce que vous dites est vrai. Je crois que je prends ces choses pour acquis maintenant que j'utilise des choses comme du carbone et de tels.



3
votes

une solution d'une ligne:

date ('ymd h: i: s', strtotime ('3/6/2019 3:40:19')));

Si vous souhaitez utiliser le carbone de Laravel, vous pouvez jeter un coup d'œil sur le API Docs : J'ai trouvé un exemple similaire à votre situation qui analyse également le 'pm' xxx


0 commentaires