web-dev-qa-db-fra.com

Changer le format de la date (en DB ou en sortie) en jj/mm/aaaa - PHP MySQL

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?

11
Jess

En PHP, vous pouvez:

  • Transformez la date en un horodatage, en utilisant strtotime
  • Formatez-le en utilisant date

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:

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
18
Pascal MARTIN

Il suffit d'utiliser la fonction intégrée Mysql DATE_FORMAT ()

SELECT DATE_FORMAT(some_date_field, "Y/m/d");
4
John Conde

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

2
D.Martin

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.

1
St. John Johnson

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.

1
Nurfaezah Hanis

Cette fonction mysql retournera le format correct dans le résultat

SELECT DATE_FORMAT(date_field, "%M %d %Y");
0
Nandhini

$dtShowDate = $_POST['dtShowDate']; $date =explode('-', $dtShowDate)0; $showdate = $date[2]."-".$date[0]."-".$date[1];

Fixer la date selon vos besoins

0
Keval Mehta