2016-10-20 4 views
-1

Ich muss eine Benutzerfunktion für die Datumsformatierung aus dem definierten Eingabeparameter in meinem Array erstellen. Das Array ich habe, ist wie folgt aussehen ..PHP Zeitformatierungsfunktion von dem angegebenen Wert

$data[1]["Name"]  = "Jack"; 
$data[1]["Job"]  = "CEO"; 
$data[1]["Date"]  = "2016-09-29"; 
$data[1]["Customer"] = "Yes"; 

$data[2]["Name"]  = "Jane"; 
$data[2]["Job"]  = "Manager"; 
$data[2]["Date"]  = "2016-02-08"; 
$data[2]["Customer"] = "No"; 

und so geht es weiter .. Was ich tun muss, ist function date_trans() Benutzerfunktion zu schaffen, die innerhalb des Arrays das Datumsformat ('d.m.Y') aus dem gegebenen Format ändert . Die Idee besteht darin, formatierte Daten aus meinem Array in einer Tabelle mit verschachtelten Schleifen wiederzugeben.

Ich habe die Schleife und die HTML-Tabelle erfolgreich erstellt, kann aber nicht herausfinden, wie Sie eine Funktion dafür erstellen. Hinweis: Für diese Übung muss es eine Funktion sein. Mit strtotime kommt meiner Meinung nach für diese ..

function date_trans() 
{ 
// 
} 

Wie soll ich diese Funktion erstellen?

+0

https: // eval.in/6635 89. Rufen Sie diese Funktion innerhalb für nur für Daten und geben Sie die Daten dort –

+0

Wie ist meine Frage genau duplizieren? @ Rizier123 - der Typ, der es markiert hat - Bitte zeigen Sie auf die exakt gleiche ** Frage, wenn es ein Duplikat ist. –

+0

@code_learn Das Duplikat zeigt Ihnen genau, wie Sie ein Datumsformat korrekt in ein anderes umwandeln. Es ist verlinkt unter "Diese Frage hat hier schon eine Antwort" im Banner. – Rizier123

Antwort

1

Mit funktions rufen Sie es wie unten tun können: -

<?php 
$data[1]["Date"] = "2016-09-29"; 

function date_trans($date) 
{ 
    return date ('d.m.Y',strtotime($date)); 
} 

echo $final_date = date_trans($data[1]["Date"]); 

Jetzt für Tage, diese Funktion innerhalb foreach rufen nur und das Datum als Parameter übergeben.

jedoch in foreach direkt können Sie wie unten tun: -

echo date("d.m.Y", strtotime($your_date_in_array)); // no function call required 
+0

Aber das formatierte Datum nur für diesen einen Wert von "2016-09-29" zurückgibt. Jedes Sub-Array hat ein anderes Datum. sollte ich es anders wiedergeben als '$ final_date = datumstrans ($ data [1] [" Date "])'? –

+0

@code_learn Wie ich dir gesagt habe, musst du diese Funktion in foreach loop verwenden. definitiv benutzt du eine foreach? ist es nicht (für HTML-Zwecke)? –

+0

Es macht viel mehr Sinn ... Moment mal, ich denke, ich bin auf dem richtigen Weg mit diesem .. Freakin Noob mich :-) –

0

Es ist

$formatted_date = date("d.m.Y", strtotime($your_date_in_array)); 

Dank.

0

Die Funktion:

function date_trans($date) { 
    try { 
    $d = new DateTime($date); 
    } catch (Exception $e) { 
    trigger_error($e->getMessage()); 
    return null; 
    } 
    return $d->format('d.m.Y'); 
} 

Verbrauch:

if ($d = date_trans("2016-09-29")) { 
    echo $d; 
} else { 
    echo "failed to process date"; 
} 
Verwandte Themen