php valore Converti formato data aaaa-mm-gg=> gg-mm-aaaa




inverso data.valore excel (10)

implode('-', array_reverse(explode('-', $date)));

Senza un overhead di conversione della data, non sono sicuro che sarà importante.

Sto provando a convertire una data da aaaa-mm-gg a gg-mm-aaaa (ma non in SQL); tuttavia non so come la funzione data richieda un timestamp, e non riesco a ottenere un timestamp da questa stringa.

Com'è possibile?


Usa strtotime() e date() :

$originalDate = "2010-03-21";
$newDate = date("d-m-Y", strtotime($originalDate));

(vedi i documenti strtotime e date sul sito PHP).

Modifica : nota che questa era una soluzione rapida alla domanda originale. Per conversioni più estese, dovresti davvero utilizzare la classe DateTime per analizzare e formattare :-)


$timestamp = strtotime(your date variable); 
$new_date = date('d-m-Y', $timestamp);

Per più:

clicca here

O ancora più corto:

$new_date = date('d-m-Y', strtotime(your date variable));

Di seguito è riportato il codice PHP per generare la data di domani usando mktime() e cambiare il suo formato in formato gg / mm / aaaa e quindi stamparlo usando echo .

$tomorrow = mktime(0, 0, 0, date("m"), date("d") + 1, date("Y"));
echo date("d", $tomorrow) . "/" . date("m", $tomorrow). "/" . date("Y", $tomorrow);

Puoi provare la funzione strftime . Qualcosa come strftime($time, '%d %m %Y');


Un'altra possibilità oscura:

$oldDate = '2010-03-20'
$arr = explode('-', $oldDate);
$newDate = $arr[2].'-'.$arr[1].'-'.$arr[0];

Non so se lo userei ma ancora :)


Utilizzare questa funzione per convertire da qualsiasi formato a qualsiasi formato

function reformatDate($date, $from_format = 'd/m/Y', $to_format = 'Y-m-d') {
    $date_aux = date_create_from_format($from_format, $date);
    return date_format($date_aux,$to_format);
}

Modifica: Poiché la risposta di questo post a volte viene svalutata, sono tornato qui per chiedere gentilmente alle persone di non svuotarlo più. La mia risposta è antica, non tecnicamente corretta, e ci sono molti approcci migliori qui. Lo terrò qui solo per scopi storici.

Sebbene la documentazione descriva male la funzione strtotime, @rjmunro ha risolto correttamente il problema nel suo commento: è in formato ISO data "AAAA-MM-GG".

Inoltre, anche se la mia funzione Date_Converter potrebbe ancora funzionare, vorrei avvertire che potrebbero esserci delle istruzioni imprecise di seguito, quindi per favore ignoratele.

La risposta più votata è in realtà sbagliata!

Il manuale PHP strtotime afferma che "La funzione prevede di ricevere una stringa contenente un formato di data inglese". Ciò che in realtà significa è che si aspetta un formato di data americano americano, come "mdY" o "m / d / Y".

Ciò significa che una data fornita come "Ymd" potrebbe essere interpretata erroneamente da strtotime. È necessario fornire la data nel formato previsto.

Ho scritto una piccola funzione per restituire le date in diversi formati. Usa e modifica come sarà. Se qualcuno lo trasformasse in una classe, sarei felice se ciò fosse condiviso.

function Date_Converter($date, $locale = "br") {

    # Exception
    if (is_null($date))
        $date = date("m/d/Y H:i:s");

    # Let's go ahead and get a string date in case we've been given a Unix Time Stamp
    if ($locale == "unix")
        $date = date("m/d/Y H:i:s", $date);

    # Separate Date from Time
    $date = explode(" ", $date);

    if ($locale == "br") {
        # Separate d/m/Y from Date
        $date[0] = explode("/", $date[0]);
        # Rearrange Date into m/d/Y
        $date[0] = $date[0][1] . "/" . $date[0][0] . "/" . $date[0][2];
    }

    # Return date in all formats
        # US
        $Return["datetime"]["us"]   = implode(" ", $date);
        $Return["date"]["us"]       = $date[0];
        # Universal
        $Return["time"]         = $date[1];
        $Return["unix_datetime"]    = strtotime($Return["datetime"]["us"]);
        $Return["unix_date"]        = strtotime($Return["date"]["us"]);
        $Return["getdate"]          = getdate($Return["unix_datetime"]);
        # BR
        $Return["datetime"]["br"]   = date("d/m/Y H:i:s", $Return["unix_datetime"]);
        $Return["date"]["br"]       = date("d/m/Y", $Return["unix_date"]);

    # Return
    return $Return;


} # End Function

date('m/d/Y h:i:s a',strtotime($val['EventDateTime']));

Se desideri evitare la conversione di strtotime (ad esempio, strtotime non è in grado di analizzare il tuo input) puoi usare,

$myDateTime = DateTime::createFromFormat('Y-m-d', $dateString);
$newDateString = $myDateTime->format('d-m-Y');

o, equivalentemente:

$newDateString = date_format(date_create_from_format('Y-m-d', $dateString), 'd-m-Y');

Per prima cosa gli dai il formato $ dateString. Quindi stai dicendo il formato in cui vuoi inserire $ newDateString.

O se il formato sorgente è sempre "Ymd" (aaaa-mm-gg), quindi usa semplicemente DateTime :

<?php
$source = '2012-07-31';
$date = new DateTime($source);
echo $date->format('d.m.Y'); // 31.07.2012
echo $date->format('d-m-Y'); // 31-07-2012
?>




formatting