MySQL stocke la date dans ma base de données (par défaut) sous la forme 'AAAA-MM-JJ' JJ/MM/AAAA?
J'appelle différentes dates dans 2 tables différentes, et nulle part dans mon code je n'ai rien qui ressemble à une variable de date ou quoi que ce soit! Espérons que ce soit un simple changement?
En PHP, vous pouvez:
Un peu comme ça, je dirais:
$timestamp = strtotime($date_from_db);
echo date('d/m/Y', $timestamp);
Mais cela ne fonctionnera que pour les dates comprises entre 1970 et 2038, car timestamps sont stockés sous forme d’entiers 32 bits, à compter du 1970-01-01.
Dans MySQL, je suppose que la fonction date_format
ferait l'affaire.
Par exemple :
mysql> select date_format(curdate(), '%d/%m/%Y');
+------------------------------------+
| date_format(curdate(), '%d/%m/%Y') |
+------------------------------------+
| 19/03/2010 |
+------------------------------------+
1 row in set (0.03 sec)
Et, par souci d’exhaustivité, une autre solution, qui ne souffre pas de la limitation de 1970 à 2038, consisterait à utiliser la classe DateTime
et notamment:
DateTime::__construct
pour analyser la date renvoyée par la base de donnéesDateTime::format
pour formater la date au format que vous souhaitez.Par exemple, cette portion de code:
$date = new DateTime('2010-03-19');
echo $date->format('d/m/Y');
vous obtiendriez cette sortie:
19/03/2010
Il suffit d'utiliser la fonction intégrée Mysql DATE_FORMAT ()
SELECT DATE_FORMAT(some_date_field, "Y/m/d");
Vous pouvez afficher votre date dans le format de votre choix dans vos pages. Sous mysql, je ne sais vraiment pas, vous pouvez utiliser cette fonction en php: date (chaîne $ format [ int $ timestamp]). Donc, vous pouvez faire ceci:
echo date ("d/m/Y", strtotime ($ your_date));
Vous pouvez trouver la description complète ici: http://php.net/manual/en/function.date.php
Après l'avoir obtenu à partir de la base de données, utilisez $time = strtotime($value)
pour le convertir en horodatage en PHP. Ensuite, utilisez date("d/m/Y", $time)
pour l’obtenir dans ce format.
Si vous utilisiez Framework comme Zend, ce serait très simple, car vous avez beaucoup de classes pour gérer les bases de données et le formatage de la date. Ensuite, vous verrez toujours la sortie au format de date brésilien. Tout comme Delphi TDateField utilise le format de date Windows sur l'ordinateur actuel, Zend recherchera dans votre propre configuration.
j'utilise ce script et le mets sur la ligne supérieure.
$(function(){
var pickerOpts = {
dateFormat: "yy-mm-dd"
};
$("#datepicker").datepicker(pickerOpts);
});
et celui-ci dans votre formulaire.
<input id=**"datepicker" type="date"** name="Start" size="9" value="<?php
echo $Start;
?>" />
Il apparaîtra comme d/m/y sur votre page mais dans votre base de données y/m/d.
Cette fonction mysql retournera le format correct dans le résultat
SELECT DATE_FORMAT(date_field, "%M %d %Y");
$dtShowDate = $_POST['dtShowDate']; $date =explode('-', $dtShowDate)0; $showdate = $date[2]."-".$date[0]."-".$date[1];
Fixer la date selon vos besoins