J'ai une date dans ce format: J'ai besoin de l'obtenir dans ce format: p> vérifier ce lien : P> http: // lucene .apache.org / SOLR / API / ORG / APACHE / SOLR / SCHEMA / DATEFIELD.HTML P> Le lien ci-dessus est comme dont j'ai besoin de la date. P> i J'utilise PHP maintenant, donc cela doit être avec PHP.
Comment puis-je convertir ces dates le moyen le plus simple? P> merci p> p>
5 Réponses :
Vous pouvez utiliser le DateTime Classe
$dateTime = new DateTime(); $dateTime.setDate(24, 12, 2010); $output = $dateTime.format(DateTime::W3C); // Output now is your date in W3C format.
Malgré cela ne fonctionne pas avec Solr. La sortie serait "2012-11-28T17: 21: 11 + 0100" qui est incorrecte.
Aussi . La notation n'existe pas dans PHP.
@Christian en fait, il est utilisé pour la concaténation. : P
C'est une date de format ISO8601; Ce qui suit est ce que vous voulez.
Je ne suggérerais pas de cette façon parce que c'est sujette d'erreur. Mieux fournir le format d'entrée vous-même et utilisez DateTime :: W3C pour le format de sortie.
Si le format d'entrée est fixe et prévisible, il est fiable (par exemple, une DB). Si le format d'entrée provient de l'utilisateur, il est toujours nécessaire de la répéter.
Utilisez la date (chaîne $ Format [ int $ TIMESTAMP]) Fonction de PHP! En second paramètre, utilisez http://php.net/manual/fr/function.strtotime. PHP pour obtenir l'horodatage des chaînes p>
$date = strtotime('24-12-2010');
$new_date = gmDate("Y-m-d\TH:i:s.z\Z",$date);
Vous pouvez faire quelque chose comme ça: la solution mentionnée avec: p> correspond à des cordes de retour comme: p> 2012-11-28T17:21:11+0100
z code> est "le jour de l'année (à partir de 0) 0 à 365" - est-ce que ce format est correct?