Erreur construct avec DateTime

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Erreur construct avec DateTime

Re: Erreur construct avec DateTime

par Jiinn » 15 janv. 2019, 11:37

Je vais faire un preg_match avec extraction des lettres, un tableau avec les 12 mois avec un test, puis un échange.

Ça me paraît le mieux.

Re: Erreur construct avec DateTime

par Jiinn » 15 janv. 2019, 11:34

Tu as raison, finalement il y en a aussi quelques autres qui ne fonctionnent pas, je me suis laissé berné par janv. Mars et deux autre au hasard qui passais. Ce que je n'explique pas d'ailleurs.

Merci à toi !

Re: Erreur construct avec DateTime

par @rthur » 15 janv. 2019, 01:55

Voici les formats de dates autorisés en paramètre de DateTime() :
http://php.net/manual/fr/datetime.formats.date.php

Je doute très fortement que tu puisses utiliser directement les notations en français, donc il faut que tu transformes ta notation de date pour arriver dans l'un des formats de la liste ci-dessus.

Erreur construct avec DateTime

par Jiinn » 15 janv. 2019, 01:48

Salut !

J'ai une erreur et je seche:

Exception reçue : DateTime::__construct(): Failed to parse time string (26 févr. 2019) at position 0 (2): Unexpected character

Voici le code incriminé :
$datetime = new DateTime('26 févr. 2019');
 $intl_date_formatter = new IntlDateFormatter('fr_FR',
     IntlDateFormatter::SHORT,
     IntlDateFormatter::NONE);
    $intl_date_formatter->setPattern('dd MMM yyyy');
$datetime = $intl_date_formatter->format($datetime);
    echo $datetime;
Donc j'ai sortie une exception sur la création du datetime pour l'erreur que vous voyez.

Elle provient des accents sur févr. Et déce. Qui ne passe pas dans la construction.

Je suis en utf8, et si je passe dans le DateTime une valeur genre: 26-02-2019 j'aurais bien un retour sans erreur de 26 févr. 2019.

( à l'origine j'ai une variable qui contient dd MMM yyyy exemple: 12 avri. 2033), mais pour plus de clarté j'ai reproduit l'erreur au plus simple.)

Merci à vous pour le coup de main !