DateTime::createFromFormat - format php problème
PHP - DateTime::createFromFormat — Retourne un nouvel objet DateTime formaté selon le format spécifié
cela fonctionne:
$var = DateTime::createFromFormat('Ymd','20100809')->getTimestamp();
mais cela échoue avec
Appel à une fonction membre méthode gettimestamp() sur un non-objet
$var = DateTime::createFromFormat('Y/m/d H:M:S','2010/08/09 07:47:00')->getTimestamp();
OriginalL'auteur roger rover | 2010-08-12
Vous devez vous connecter pour publier un commentaire.
En l'espèce, la
M:S
partie est faux. Il doit êtrei:s
. Voir la manuel sur la date().Toutefois, cela met en évidence une profonde problème conceptuel: Une entrée incorrecte dans aucun paramètre conduira à une erreur fatale, qui est le mauvais comportement d'une application en production.
Dans le manuel sur
createFromFormat
:Lorsque l'appel ne parvient pas à construire une date de votre entrée, aucun objet n'est retourné.
Pour éviter des erreurs fatales sur erreur de saisie, vous (malheureusement, car cela rompt la belle série) vérifier la réussite de la première:
m:s
;i:s
.m
est pour la teigne.bien sûr, les acclamations. Corrigés.
OriginalL'auteur Pekka 웃
Il devrait être
Voir
date
pour le format utilisé.Vous pouvez également utiliser
strtotime
dans cette circonstance. Cela donnerait le même résultat:D'une autre manière:
Noter que
DateTime::createFromFormat
retourneFALSE
en cas d'erreur. Vous pouvez récupérer les erreurs avecDateTime::getLastErrors()
:donnerait:
OriginalL'auteur Artefacto
Utilisation s en place de S
et m en place de M
jour du mois, sur 2 caractères comme
st, nd, rd ou th
et
mois, avec les zéros non significatifs
mois, trois lettres comme Jan à travers
Dec
OriginalL'auteur codaddict
H:M:S
M est le mois nom court et S est ordinale (st, nd,rd,ème) jour du mois
essayez de H:i:s
OriginalL'auteur Mark Baker