web-dev-qa-db-fra.com

Comment convertir MM/JJ/AAAA en AAAA-MM-JJ?

J'ai un calendrier jQuery qui définit la valeur d'entrée sur MM/JJ/AAAA

Comment pourrais-je le convertir afin que ma colonne de base de données (date) puisse l'accepter correctement?

MODIFIER

Gordon avait raison - son lien m'a dirigé vers cette réponse

$mysql_date = date('Y-m-d H:i:s', strtotime($user_date));
16
st4ck0v3rfl0w
$date = "07/12/2010";
$your_date = date("Y-m-d", strtotime($date));

J'espère que ma réponse est utile :)

40
Dae KIM

Vous voulez faire cela en PHP, non?

  1. Utilisez éclater

    $christmas = "12/25/2010";
    $parts = explode('/',$christmas);
    $yyyy_mm_dd = $parts[2] . '-' . $parts[0] . '-' . $parts[1]
    
  2. Utilisez strptime pour l’analyser dans un horodatage, puis strftime pour le formater à votre guise.

11
Alex

Essayez le code suivant,

<?php
$date = "10/24/2014";
$date = DateTime::createFromFormat("m/d/Y" , $date);
echo $date->format('Y-m-d');
?>
5
saravanavelu

Essaye ça:

$date = explode('/', '16/06/2015');

$new  = date('Y-m-d H:i:s', strtotime(implode('-', array_reverse($date))));

Retours: 2015-06-15 00:00:00

J'espère que cela t'aides!

2
Gabriel Glauber

Nous avons besoin de plus d'informations?

1) Quel script est inséré dans la base de données? J'assume PHP

2) Nous devons également savoir comment vous stockez la date et sous quel format.

Ma solution serait:

$dates = preg_split('/\//',$_POST['date']);

$month = $dates[0];
$day = $dates[1];
$year = $dates[2];

$finalDate = $year.'-'.$month.'-'.$day;
2
Lizard

Je suggérerai d'utiliser la fonction strtotime() puis date(). En cela, vous pouvez convertir n'importe quel format de date. 

$unix_time_stamp = strtotime($mm_dd_yyyy);
$yyyy_mm_dd = date(Y/m/d,$unix_timestamp);
1
Shubham

Sinon, vous pouvez le faire sans utiliser la variable explode:

$date = "12/25/2010";
$mysql_date = date('Y-m-d', strtotime($date));

Vous pouvez maintenant utiliser $mysql_date pour insérer dans votre base de données.

1
Sarfraz

si vous voulez juste une ligne, essayez ceci:

$time = "07/12/2010";

$new_time = preg_replace("!([01][0-9])/([0-9]{2})/([0-9]{4})!", "$3-$1-$2", $time);

var_dump($time);
var_dump($new_time);
0
wodka

affecter les valeurs de date à la variable $d

$dob indique la date que vous souhaitez convertir 

$d= date('Y-m-d',strtotime ($dob) );
0
Unni Kr