Bonjour et merci d'avance pour votre aide.
J'aimerais utiliser cette fonction, pour convertir mes dates.
TimeHelper, CakeTime::format()
Pratique et facile à utiliser, le soucis c'est qu'elle confond les mois(%m) et les jours(%d).
bootstrap.php
setlocale(LC_ALL, 'french');
Debug
Configure::read('Config'));
//'language' => 'fr'
mode.php
debug(CakeTime::format('01/01/2015', '%A, %Y-%m-%d'));
//'jeudi, 2015-01-01'
//==> OK
debug(CakeTime::format('01/12/2015', '%A, %Y-%m-%d'));
//'lundi, 2015-01-12'
//==> NOT OK, car la fonction estime que 12 est le jour.
debug(CakeTime::format('13/01/2015', '%A, %Y-%m-%d'));
//==> Renvoie une chaine vide
//NOT OK, la fonction estime que 13 est le mois.
Merci à vous,
En quoi ai-je confondu helper et utilitaire ?
Parce que tu nous donnais le lien du Helper, alors que dans ton code tu désignais l'utilitaire.
Que je passe d'un format de type (jj-mm-aaa) à (aaaa-mm-jj) et inversemment.
CakeTime, confond %m et %d et me revoie des dates érronées.
Comme je te l'ai déjà dit, la méthode format de l'utilitaire Time, attend une chaine de date au format SQL pour le convertir par la suite.
Donc si tu ne lui donnes pas la chaîne sous le format qu'elle attend, elle ne pourra pas la convertir correctement.
Ce qui fait que ton utilisation de la méthode dans le beforeSave est totalement inutile.
Et puis, si tu regardes dans la documentation concernant la méthode format, elle utilise la fonction strftime
de PHP et cette fonction attend une chaîne sous le format mois/jour/années
et non jour/mois/année
, donc dans le cas ou la chaîne n'est pas sous le format SQL, elle utilise la fonction strftime
.
Bonjour.
Si tu est sur CakePHP 3 tu peux utiliser la classe Time
Je ne pense pas qu'il soit sur la V3, étant donné que sur la V3 il n'y a plus d'appel à CakeTime
.
@MajidCameleon, il ne faut pas que tu confondes le Helper et l'utilitaire.
Ensuite, tu dois donner sous le format SQL 2015-08-15
ou 2015-08-15 16:56:00
et non 15/08/2015
.
Merci pour vos réponses,
@Lartak: il ne faut pas que tu confondes le Helper et l'utilitaire.
En quoi ai-je confondu helper et utilitaire ?
@Lartak: Ensuite, tu dois donner sous le format SQL 2015-08-15 ou 2015-08-15 16:56:00 et non 15/08/2015.
Je suis conscient, mais l'a n'est pas le probléme.
Que je passe d'un format de type (jj-mm-aaa) à (aaaa-mm-jj) et inversemment.
CakeTime, confond %m et %d et me revoie des dates érronées.
Pourtant j'ai bien configurér mon setlocale() et ma config CakePHP est bien en français.
Je comprend rien,
Ma vue, view()
<?= $this->Time->format($row['Pet']['birthday'], '%d/%m/%Y') ?>
//Ici pas de probléme,
Mon model, beforeSave()
debug($this->data[$this->alias]['birthday']);
debug(CakeTime::format($this->data[$this->alias]['birthday'], '%Y-%m-%d'));
//Par contre dans mon beforeSave, il inverse %m et%d