2015-05-31 7 views
5

Ich benutze WordPress als mein CMS. Ich versuche zu überprüfen, ob einige meiner Benutzer einen Geburtstag in der aktuellen Woche haben. ohne Erfolg.PHP überprüfen, ob die Daten in der aktuellen Woche sind

Hier ist mein Code

$fd = date("Y-m-d",strtotime('monday this week')); 
$ld = date("Y-m-d",strtotime("sunday this week")); 

$cdate = date('m-d',time()); 
if (($cdate >= $fd) && ($cdate <= $ld)) { 
echo 'true'; 
} else { 
echo 'false'; 
} 

Das ist für mich falsch zurückkehrt Wenn ich

verwenden
'm-d' in $cdate variable 

Es funktioniert gut, wenn verwenden Ymd ist aber in diesem Fall sollte die Jahre gleich sein was nicht möglich ist, da alle Menschen unterschiedliche Geburtsjahre haben

+1

in den meisten Fällen etwas wie 'if (Datum ('W', $ Geburtstag) == Datum ('W')) {}' sollte genug sein. – Rufinus

Antwort

9

Mein hier Way

es den Sie können wie diese tun

Schritt 1:

Finden Sie den Start und am letzten Tag der Woche

$FirstDay = date("Y-m-d", strtotime('sunday last week')); 
$LastDay = date("Y-m-d", strtotime('sunday this week')); 

Schritt 2:

Prüfen Sie, ob das angegebene Datum zwischen dem Beginn und am letzten Tag der Woche

if($Date > $FirstDay && $Date < $LastDay) { 
     echo "It is Between"; 
    } else { 
     echo "No Not !!!"; 
    } 
ist

Wenn Yes dann gehört es Else Not

Also, schließlich der Code, den Sie haben soll, ist

<?php 
$Date = "2015-06-01"; #Your Own Date 
$Date = date('Y-m-d'); #Or Current Date Fixed here 
$FirstDay = date("Y-m-d", strtotime('sunday last week')); 
$LastDay = date("Y-m-d", strtotime('sunday this week')); 
if($Date > $FirstDay && $Date < $LastDay) { 
    echo "It is Between"; 
} else { 
    echo "No Not !!!"; 
} 
?> 

Hinweis

  1. Sie können Ihre eigenen Starttag dh Sunday oder Monday

  2. Sie Ihre eigenen Datum oder Aktuelles Datum

    haben
2

Sie können den Formatparameter W verwenden, der wird geben Sie die Zahl der aktuellen schwachen im Jahr (die Kalenderwoche).

if(date("W") == date("W", $birthday)){ 
    // User has birthday this week 
} 

$birthday haben hier einen Zeitstempel sein. Vielleicht müssen Sie $birthday = strtotime($birthdate); verwenden.

0

Meiner Meinung nach ist die einfachste Lösung haben kann besteht darin, Strings zu übergeben und sie als Zahl zu speichern, wie Sie in diesem Beispiel sehen können:

$fd = strtotime('monday this week'); // First date 
$ld = strtotime('sunday this week'); // last date 

$birthday_date = strtotime('YYYY-mm-dd'); // Birthday date 

if (($birthday_date > $fd) && ($birthday_date < $ld)) { 
    echo 'true'; 
} else { 
    echo 'false'; 
} 

Natürlich müssen Sie das Geburtsjahr auf das aktuelle Jahr umstellen.

0

Richards Antwort ist genau richtig. Nur für Leute, die diesen Post erreichen, wenn sie nach der Woche suchen, ist das selbe und überprüfen Sie auch, dass das Jahr das selbe ist; Dies wird auch überprüfen, dass sie nicht nur in der gleichen Woche des Jahres, sondern auch im selben Jahr sind.

$testData = "1447672336"; 
if((date("W") == date("W", $testData)) && (date("Y") == date("Y", $testData))){ 
    // The timestamp in $testData is the same week of the same year as today is. 
} 
Verwandte Themen