2010-07-20 2 views
14

Ich habe einen jquery Kalender, der den Eingabewert auf MM/TT/JJJJ setztWie konvertiert man MM/TT/JJJJ in JJJJ-MM-TT?

Wie würde ich es konvertieren, so dass meine Datenbankspalte (Datum) es richtig akzeptieren kann?

EDIT

Gordon hatte Recht - seine Verbindung mir

zu dieser Antwort darauf
$mysql_date = date('Y-m-d H:i:s', strtotime($user_date)); 
+14

Gibt es wirklich keine [Antwort] (http://stackoverflow.com/search?q=How+to+convert+MM%2FDD%2FYYYY+to+YYYY -MM-DD% 3F + php) das würde dir das geben? – Gordon

+3

Ich bin mir ziemlich sicher, dass die meisten jQuery-Plugins konfiguriert werden können, sogar ihr Datumsformat. – Piskvor

+0

Eine andere Option ist es zu belassen wie es ist und lassen Sie die DB die Konvertierung machen –

Antwort

33
$date = "07/12/2010"; 
$your_date = date("Y-m-d", strtotime($date)); 

Ich hoffe, meine Antwort ist nützlich :)

+14

Es ist wichtig, die unterschiedliche Interpretation von '-' und'/'im Datum zu beachten. Wenn Sie ein '-' PHP verwenden, wird es als DD-MM bestimmt, wenn Sie ein'/'PHP verwenden, wird es als MM-DD bestimmt. – Devon

+0

Dank @Devon für nützliche Informationen geben. –

+0

Nur eine Anmerkung zu @Devon Kommentar, ich wusste nicht, dass PHP auf diese Weise gehandelt hat, und meiner Meinung nach ist es wirklich eine schlechte Art zu handeln, da es zu Fehlern führen wird, da es Orte (wie Brasilien) gibt Format ist "DD/MM/YYYY" und weil '/' benutzt wird, wird PHP ** fälschlicherweise ** als "MM-DD" definieren. –

10

Sie wollen dies in PHP zu tun, nicht wahr?

  1. Verwenden Explode

    $christmas = "12/25/2010"; 
    $parts = explode('/',$christmas); 
    $yyyy_mm_dd = $parts[2] . '-' . $parts[0] . '-' . $parts[1] 
    
  2. Verwenden strptime es zu einem Zeitstempel zu analysieren und dann strftime zu formatieren Sie es so, wie Sie es wollen.

2

Wir brauchen weitere Informationen?

1) Welches Skript wird in die Datenbank eingefügt? Ich nehme an, PHP

2) Auch müssen wir wissen, wie Sie das Datum speichern und in welchem ​​Format?

Meine Lösung wäre:

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

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

$finalDate = $year.'-'.$month.'-'.$day; 
1

I strtotime() Funktion und dann date() verwenden wird vorschlagen. Dadurch können Sie jedes Format des Datums konvertieren.

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

Fix Syntaxfehler bitte. – Gordon

1

Alternativ können Sie dies tun, ohne die explode mit:

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

Sie jetzt $mysql_date in Ihre Datenbank einfügen können.

0

, wenn Sie nur eine Zeile dieses versuchen:

$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); 
-1

Versuchen Sie, den folgenden Code:

$date = "01-14-2010"; 
echo $your_date = date("Y-m-d", strtotime($date)); 

Es wird 1969-12-31 Echo.

0

ordnen Sie die Datumswerte auf variable $d

$dob bezeichnet das Datum, das Sie

$d= date('Y-m-d',strtotime ($dob)); 
1

Versuchen Sie, diese umwandeln möchten:

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

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

Returns: 2015.06.15 00: 00:00

Hoffe, das hilft!

3

den folgenden Code Versuchen Sie,

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

Ich mochte diese Antwort, weil sie flexibler ist, da PHP nichts raten muss, übergeben Sie die Datumsformate von (m/d/Y) und (Y-m-d). –

Verwandte Themen