2010-11-02 10 views
1

Je n'arrive pas à importer la date dans mysql à partir de mon formulaire.format date au format mysql

ma forme est validée pour que l'entrée sera toujours jj/mm/aaaa

J'utilise actuellement

$date = date('Y/m/d', strtotime($_POST['night_attending'])); 

cela prend la valeur de la forme et lui attribue l'année/mois/jour

le problème est que sa lecture ma forme mm/jj/aaaa

je peux échanger le code à « Y/d/m » qui le mettra dans le bon sens dans ma base de données, mais il cessera de fonctionner si le jour est passé le 12 comme il croit encore qu'il est le mois

j'ai essayé d'utiliser

date_default_timezone_set('Europe/Dublin'); 

et

date_default_timezone_set('Europe/London'); 

mais il ne fait aucune différence

J'envisage simplement d'utiliser le format mm/jj/aaaa sur mon formulaire, mais ce n'est pas génial car c'est un site britannique.

Quelqu'un at-il rencontré ce problème? Je suis sûr que ça doit être comman et il doit y avoir une réponse simple qui me manque.

grâce

alsweet

Répondre

2

Il n'y a aucun moyen de définir le format de date de MySQL - les options existent, mais elles ne sont pas appliquées/utilisées.

Je ne recommande pas stocker les dates que VARCHAR afin de maintenir le format - utilise le format MySQL, et travaille avec MySQL date functions (IE: STR_TO_DATE, DATE_FORMAT) à la sortie le format souhaité pour l'écran. Sachez que les dates dépendront du fuseau horaire de l'hôte sur lequel MySQL est activé. Vous pouvez envisager d'utiliser l'horodatage d'époque à la place, en fonction de vos besoins.

2

Cela vous donnera le format de date mysql de la date UK.

$timestamp = strtotime(str_replace('/', '.', '03/04/2011')); 
$mysql_date = date('Y-m-d', $timestamp); // 2011-04-03