2010-12-29 25 views
1

Ich möchte Montag, Dienstag, Mittwoch ... mit PHP-Funktion erhalten.Wie bekomme ich Wochentage in PHP?

Ich habe nur numerische Werte für die, wie 1,2,3..7 wo

1 = Montag 2 = Dienstag ... 7 = Sonntag.

Kann mir jemand diesbezüglich helfen.

Danke,

Kanji

+0

@Kanji - Ihr Start numerische Werte von 0 und endete mit 6 ??? – ajreal

+0

@ajreal: Ich habe 0 als Montag, 1 als Dienstag ab. –

+0

@Kanji - so ist mit Sonntag, der 6 ist beendet?(eines der Weired-Format), sollten Sie Ihre Frage aktualisieren, um diese Information aufzunehmen, sonst ** wer die Halle ** wird jetzt, 0 = Montag, (siehe http://php.net/manual/en/ Funktion.date.php), ist normalerweise 1-7 (Montag-Sonntag) oder 0-6 (Sonntag-Samstag) – ajreal

Antwort

3

DateTime::format, mit dem Parameter als $formatl (kleines L).

Object Oriented Stil:

$object->format('l'); 

Procedural style:

date_format(DateTime $object, 'l'); 

Sie können ein Datetime-Objekt mit DateTime::__construct, und Sie können here mehr über Datetime-Formate lernen.

+0

Danke, aber können Sie dies in einfachen PHP-Stil geben? –

+0

@Kanji Zuerst müssen Sie ein DateTime-Objekt erstellen und dann den prozeduralen Stil verwenden. – waiwai933

+0

Auch diese Lösung kann zu viel werden, wenn Sie bereits die Nummer des Wochentages haben. In diesem Fall wäre [decezes Antwort] (http://stackoverflow.com/questions/4551861/how-to-get-week-days-in-php/4551894#4551894) besser. – waiwai933

3

Wenn alles, was Sie haben ein numerischer Wert ist und keine vollständige Zeitstempel, bei weitem die einfachste Art und Weise, ist dies:

$weekdays = array('Monday', 'Tuesday', 'Wednesday', ...); 
$weekday = 0; 
echo $weekdays[$weekday]; 
0
switch ($day) { 
    case 0 : echo "Monday"; break;//if $day = 0 it will print Monday 
    case 1 : echo "Tuesday"; break; 
    case 2 : echo "Wednesday"; break; 
} 
2

Die folgenden sollten Sie den Tag der Woche für heute geben (ex Dienstag):.

<? echo date("l"); ?>

oder für ein bestimmtes Datum können Sie so etwas wie folgt verwenden:

<? echo date("l",strtotime("10 September 2000")); ?>

Für weitere Informationen:

function convertNumberToDay($number) { 
    $days = array('Sunday','Monday', 'Tuesday', 'Wednesday','Thursday','Friday','Saturday'); 
    return $days[$number-1]; // we subtract 1 to make "1" match "Sunday", "2" match "Monday" 
} 
echo convertNumberToDay(3); // prints "Tuesday"
0
<?php 
$day = 2; 
echo date('l', mktime(0,0,$day,0,1)); // Tuesday 
?> 
: http://www.php.net/manual/en/function.date.php

Wenn Sie nur eine Nummer haben, die Sie auf einen Tag in der Woche zu konvertieren versuchen, erhalten Sie folgende verwenden könnte

So können Sie eine einfache Funktion wie folgt erstellen:

function getDayName($dayNo) { 
    return date('l', mktime(0,0,$dayNo,0,1)); 
} 

Demo: http://www.ideone.com/hrITc

0

Wenn Sie einfach 0 in "Montag", 1 in "Dienstag" usw. konvertieren möchten, verwenden Sie ein Array.

$day_of_week = array 
(
    0 => 'Monday', 
    1 => 'Tuesday', 
    2 => 'Wednesday', 
    . 
    6 => 'Sunday' 
); 

$day = 2; 

echo $day_of_week[$day]; 
+0

Entschuldigung, dies ist ein Duplikat von [decezes Antwort] (http://stackoverflow.com/questions/4551861/how-to-get-week-days-in-php/4551894#4551894) –

4

Mein persönlicher Favorit ...

$day_start = date("d", strtotime("next Sunday")); // get next Sunday 
for ($x = 0; $x < 7; $x++) 
    $week_days[] = date("l", mktime(0, 0, 0, date("m"), $day_start + $x, date("y"))); // create weekdays array.