2010-02-21 21 views
10

Ich möchte das Datum für das aktuelle Datum in PHP erhalten. was ich versuchte, ist hier ...Den Tag für den aktuellen Tag in PHP erhalten

echo $x."<br>"; 
echo date("D",$x)."<br>"; 

aber der Ausgang war

21-02-10 
Thu 

Es ist richtige Datum, aber nicht der richtige Tag value.Why geben ..?

Was ich will Tag ist das Datum für Montag für die aktuelle Woche, die an jedem Tag der Woche generiert werden kann. so, was ich tat, war, ich die heutigen Tag zu nehmen und zu vergleichen mit (Mo, Di .... So) und jeweils einen Zeitstempel zu schaffen mit

case "Mon": 

$startdate1=date("d-m-y"); 
$parts = explode('-',$startdate1); 
$startdate2 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+1),$parts[2])); 
$startdate3 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+2),$parts[2])); 
$startdate4 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+3),$parts[2])); 
$startdate5 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+4),$parts[2])); 
$startdate6 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+5),$parts[2])); 
$startdate7 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+6),$parts[2])); 

$dates=array(1 => $startdate1,$startdate2,$startdate3,$startdate4,$startdate5,$startdate6,$startdate7); 
$i=1; 
while($i <= 7) 
{ 
echo $dates[$i]; 
$i++; 
} 
break; 

$ date ist das letzte Array jeweils bis heute, die hat zurückzusenden. Gibt es eine andere bessere Methode, um diese Operation durchzuführen?

Antwort

2

Was ich lösen tat es das Datumsformat verwendet wird ('d-m-Y') anstelle von ('d-m-y') in Datumsfunktion, die das Problem verursacht wurde.Daher akzeptiert strtotime das Format und gab das korrekte Ergebnis für

$t=date('d-m-Y'); 
echo date("D",strtotime($t)); 
0

Sie sind wahrscheinlich eine Zeichenfolge als Zeitstempel vorbei

echo $x."<br>"; 
echo date("D",$x)."<br>"; 

$x entfernen und gibt er den richtigen Tag oder ändern zu

$x = '21-02-2010'; 
echo date('D', strtotime($x)); 
+0

Noch ist die Ausgabe Thu für $ x = '21 -02-2010 '; –

+0

yeah hab dieses mal die richtige ... :) Danke –

2

was habe ich versucht, ist hier ...

echo date("D",$x)."<br>";

date erwartet einen Timestamp (int) -Wert als zweiten Parameter. Ihr $x ist eine Zeichenfolge, die ein mehrdeutiges Datumsformat enthält. Rechnen Sie dieses Datum zuerst in einen Zeitstempel um, indem Sie strptime oder strtotime verwenden und die date Funktion korrekt verwenden, um den richtigen Tagwert zu erhalten.

Bezüglich Ihres zweiten Teils, brauchen Sie nicht zu (und sollen nicht), um den Tag Namen überprüfen den korrekten Montag, Dienstag usw. Ein effizienterer Ansatz ist zum Beispielstrtotimelast Monday usw. erhalten mit berechnen

+0

echo date ("D", strtotime ($ x, 1)). "
"; gibt dies auch keine richtige Antwort. –

+0

yeah hab dieses mal die richtige ... :) Danke –

4

Wie wäre es damit:

//today is monday 
if (1 == date('N')){ 
    $monday = time(); 
}else{ 
    $monday = strtotime('last Monday'); 
} 

for ($i = 0; $i < 7; $i++){ 
    echo date('d-m-Y', $monday) . '<br>'; 
    $monday = strtotime('tomorrow', $monday); 
} 

erste Fund Montag, wenn es nicht heute, dann 7 Tage,

drucken
+0

if (1 == date ('N')) was ist 'N' in dieser Zeile ... kannst du mir den Code ein wenig mehr erklären .. .? –

+0

N ist die numerische Darstellung für den Wochentag. Siehe http://uk2.php.net/manual/en/function.date.php –

+0

http://php.net/manual/en/function.date.php –

3

Wh an Ich will Tag ist das Datum für Montag für die aktuelle Woche, die an jedem Tag der Woche generiert werden kann.

Das ist, was Sie wollen. $mday ist der Monatstag dieser Woche am Montag. Vergiss es, wenn es nicht positiv ist, mktime wird das richtig behandeln. $monday hat den Zeitstempel des Montag Mitternacht.

$now = getdate(); 
$mday = $now['mday'] - ($now['wday'] + 6) % 7; 
$monday = mktime(0, 0, 0, $now['mon'], $mday, $now['year']); 
echo(date('d-m-y', $monday)); 
+0

Scheint wie harte Arbeit letzten Montag zu finden :) –

+1

Außerdem könnte es nie existieren: http://www.last-thursday.org/ – codeholic

11

Ich versuchte dies zu aktuellen Tag zu bekommen.

echo date('l'); // output: current day. 
+0

Danke .. Perfekte Antwort .. – VishalParkash

0

Ich verwende die Funktion Datum und Pfad zur Datei der „D“, die auf den aktuellen Tag refere, und es funktioniert bei mir

$today = date("D"); 

und die vollständigen Informationen über das aktuelle Datum zu erhalten

$today = date("D M j G:i:s T Y");    // Sat Mar 10 17:16:18 MST 2001 
Verwandte Themen