Bonjour, j'ai un soucis qui me triture depuis plusieurs heures maintenant concernant le format datetime d'un serveur SQL Server 2008.
Je vous explique mon soucis, nous avons deux serveurs sous linux et nous upgradons la versions PHP (5.3 vers 5.4.4), nous avons donc fais la mise à jour sur un de deux et migré les applis tournant sous 5.3 vers 5.4.4, a part quelques fonctions deprecated que nous avons remplacé, nous rencontrons un soucis plus important et beaucoup plus gênant sur les datetime stockés dans notre BDD.
En effet, le résultat diffère selon la version php (est ce que ca vient bien de là ? c'est ce que je pense) je vous détail ici un example :
Dans ma base de données j'ai un datetime :
2013-12-05 15:42:13.050
Sous php 5.3 nous le récupérons tel que avec une reqûete et nous appliquons un petit traitement :
Qui nous retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php date('d/m/Y H:i:s',strtotime($arrayResult['date_saisie'])); ?>
05/12/2013 15:42:13
Ce qui est parfait
Par contre sous PHP 5.4.4 pour le même traitement nous avons :
12/05/2013 03:42:13
Voici le problème :Le mois et le jour sont inversés et l'heure est sur un format 12h et non 24h.
Comme le mois et le jour sont inversés, si la date est par exemple :
2013-11-25 10.41.33.110
Nous avons donc sous php5.3 => 28/10/2013 15:54:02
Mais sous PHP5.4.4 nous avons => 01/01/1970 01:00:00
Comme il interprète le mois comme étant 25 il déclenche une erreur .
Ma question est de savoir si il y a une configration spécifique au niveau du serveur dans le php.ini ou autre a mettre ?
Devons-nous faire un convert(varchar(24)) dans notre requête sql comme j'ai pu le voir partout ? cette solution nous oblige à tout modifier et serait la dernière possibilité
Merci à vous
Partager