2016-02-03 138 views
0

我有這種格式的mysql表(DateOfBirth)的這一列02-03-2016 我想在會員的出生日期是今天時顯示一條消息。我如何才能選擇列中的月份和日期02-03以便與$dat=date("m-d");進行比較。看看我的密碼只選擇月份和日期

date_default_timezone_set("America/New_York"); 
$dat=date("m-d"); 
$resa=mysqli_query($dbc,"SELECT name FROM qbreplace.Staff_Member WHERE 
DateOfBirth = '$dat'") or die ('Erreur : '.mysqli_error()); 
while($row = mysqli_fetch_array($resa)){ 
    echo "<div style='color:red;font-weight:bold;text-decoration:blink;'>Today is ".$row['name']." birthday !</div>"; 
} 
+0

拉動這個月可能會更容易,然後使用PHP來拉出你需要的日子。 – durbnpoisn

+0

更好地使用像條件那裏,dateOfBirth像'$ date%',$ date這裏是gmdate(「m-d-」); – ameenulla0007

+0

你的DB字段格式是d-m-Y還是m-d-Y? – ameenulla0007

回答

1

這應該工作,雖然有這麼多優雅的解決方案。此外,如由他人提出驗證數據庫是否存儲在d-M-Y日期或M-d-Y格式

date_default_timezone_set("America/New_York"); 
    $dat=date("m-d"); 
    $resa=mysqli_query($dbc,"SELECT name FROM qbreplace.Staff_Member WHERE 
    LEFT(DateOfBirth , 5) = '$dat'") or die ('Erreur : '.mysqli_error()); 

while($row = mysqli_fetch_array($resa)){ 
      echo "<div style='color:red;font-weight:bold;text-decoration:blink;'>Today is ".$row['name']." birthday !</div>"; 

     } 

在出生日期字段中的前5個字符是否等於你在$ DAT創建的字符串中的腳本檢查。

更優雅的方式將做使用內置的日期格式,即

DATE_FORMAT(DateOfBirth,'%m-%d') = $dat 
0

有一些功能是在MySQL中可用於格式化你的日期,所以你可以使用這些

您可以使用STR_TO_DATE ()到您的字符串轉換爲MySQL的日期值或DATE_FORMAT功能,您的日期轉換成你需要的

STR_TO_DATE(datestring, '%d/%m/%Y') 
DATE_FORMAT(date,'%d/%m/%Y') 
1
date_default_timezone_set("America/New_York"); 
$dat=date("m-d"); 
$resa=mysqli_query($dbc,"SELECT name FROM qbreplace.Staff_Member WHERE 
DATE_FORMAT(DateOfBirth,'%m-%d') = '$dat'") or die ('Erreur : '.mysqli_error()); 
while($row = mysqli_fetch_array($resa)){ 
echo "<div style='color:red;font-weight:bold;text-decoration:blink;'>Today is ".$row['name']." birthday !</div>"; 

} 
任意格式

您可以使用DATE_FORMAT臨時轉換您的日期格式並檢查當前的日期和月份。 這裏去你的教程DATE_FORMAT ​​

相關問題