Si j'ai une chaîne de date: et je souhaite séparer chaque partie de la date: p> Comment Serais-je le faire? P> Y a-t-il une fonction de date spéciale que je devrais utiliser? Ou quelque chose d'autre? P> merci! P> p>
8 Réponses :
exploser code>
fera le tour pour cela:
list($m, $d, $y) = explode("/", $date);
Liste ($ m, $ d, $ y) = exploser ("/", date $ DATE);
Une solution serait de faire ceci:
Ah, mais votre réponse est plus robuste.
Strotime ne fonctionne pas toujours à cause de la contrainte d'horodatage. Dites que vous voulez analyser la Première Guerre mondiale, vous ne pouvez pas convertir le 28/08/1914 en un horodatage valide.
Est-ce toujours comme ça? Ou sera-t-il dans n'importe quelle sorte de format de fichier?
essayez strtotime. P>
quelque chose comme: p>
La réponse de Dominic est bonne, mais et non doivent utiliser un tableau ou exploser P> Bill H P> P>
Pourquoi voudrait-on éviter d'exploser? si i> la date est toujours i> dans le même format, explosion fonctionnera parfaitement, et comme @gido implique, sera auto-documentant en termes d'intention. Si on veut éviter le tableau, alors list code> les éléments sur des variables distinctes.
Que diriez-vous:
list($m, $d, $y) = explode("/", $date);
Consultez PHP's Fonction Date_Parse . Sauf si vous êtes sûr que l'entrée sera toujours dans un format cohérent et que vous le validez d'abord, il est beaucoup plus stable et flexible, (sans trop mentionner), de laisser PHP essayer d'analyser le format pour vous.
E.g. p>
Si vous avez un format donné, vous devez utiliser un date objet .
$newFormat = $date->format('d-m-Y');
Pour une date d'analyse de la date internationalisée, voir IntlateFormatter :: parse - http://php.net /manual/fr/intldateformatter.parse.php
Par exemple: P>
$f = new \IntlDateFormatter('en_gb', \IntlDateFormatter::SHORT, \IntlDateFormatter::NONE); $dt = new \DateTime(); $dt->setTimestamp($f->parse('1/2/2015'));