2012-12-28 6 views
19

Ich habe durch Beispiele online gesucht, und ich finde sie ein wenig kryptisch oder übertrieben.

Was ich brauche, ist etwas zu tun, wie folgt aus:

$timestamp = time(); 

und dann herausfinden, ob der Tag ein Montag ist oder eine Faust des Monats?

Ich bin mir sicher, dass es möglich ist, ich bin nur nicht sicher, wie das geht.

+0

http://php.net/manual/en/class.datetime.php –

+0

Sie Daten abfragen nach Montag oder 1. nedd oder ist es der 1. oder Montag zu erfahren? ;) – Xfile

+0

@Xfile Ich muss nur wissen, ob heute Montag ist? Und in einer separaten Zeile muss ich wissen, ob heute der erste des Monats ist. Im Wesentlichen gibt es Erinnerungen, die wöchentlich und monatlich gesendet werden müssen, deshalb brauche ich diese. – Genadinik

Antwort

42

Eigentlich Sie keine Zeitstempel Variable benötigen, weil:

Exerpt von date Funktion von php.net:

formatiert eine Zeichenfolge zurück entsprechend der angegebenen Formatzeichenfolge unter Verwendung von die angegebene Ganzzahl Zeitmarke oder die aktuelle Zeit, wenn keine Zeitmarke angegeben ist. Mit anderen Worten, der Zeitstempel ist optional und hat standardmäßig den Wert von time().

if(date('j', $timestamp) === '1') 
    echo "It is the first day of the month today\n"; 

if(date('D', $timestamp) === 'Mon') 
    echo "It is Monday today\n"; 
+4

'if (Datum ('w', $ timestamp) === '1')' ist besser. –

+1

Warum ist es besser? erklären. D-Format-Zeichen sind menschlicher lesbar. –

+2

Ich denke, in bestimmten Ländern kann das Ergebnis von 'date ('D')' Montag sein, aber nicht als '' Mon'' gelesen werden. Darüber hinaus ist es Ihrem Code egal, ob er lesbar ist, er möchte auf die richtige Weise reagieren, wenn es Montag ist oder nicht. –

1

können Sie verwenden: strtotime

$firstdaymonth = strtotime('first day this month'); 
+1

Entschuldigung, ein bisschen verwirrt, wie kann ich 'ersten Tag diesen Monat' in diese Funktion eingeben? – Genadinik

+3

durch wörtlich schreiben "erster Tag diesen Monat". strtotime akzeptiert diese. google it :) –

2

Dies greifen .. Montag von mysql

$monday = 1; //tuesday= 2.. sunday = 7 

    AND $monday = (date_format(from_unixtime(your_date_column),'%w')) 

ODER Tage ..

$day = 1; ///1st in month 

    AND $day = (date_format(from_unixtime(your_date_column),'%d')) 

nur wissen

$date = date("d"); //1st? 
$dayinweek = date("w"); //monday? //as a number in a week what you need more then just "Monday" I guess.. 
6

Dieses es lösen sollte:

$day = date('D'); 
$date = date('d') 
if($day == Mon){ 
    //Code for monday 
} 
if($date == 01){ 
    //code for 1st fo the month 
} 
else{ 
    //not the first, no money for you =/ 
} 
0

Da $ Datum kann Montag oder Sonntag. Sollte überprüfen es

public function getWeek($date){ 
    $date_stamp = strtotime(date('Y-m-d', strtotime($date))); 

    //check date is sunday or monday 
    $stamp = date('l', $date_stamp);  

    if($stamp == 'Mon'){ 
     $week_start = $date; 
    }else{ 
     $week_start = date('Y-m-d', strtotime('Last Monday', $date_stamp)); 
    } 


    if($stamp == 'Sunday'){ 
     $week_end = $date; 
    }else{ 
     $week_end = date('Y-m-d', strtotime('Next Sunday', $date_stamp)); 
    }   
    return array($week_start, $week_end); 
} 
Verwandte Themen