我有这个格式02-03-2016
的mysql表(DateOfBirth)的这一列
我想在会员的出生日期到今天时显示一条消息。如何仅选择列中的月份和日期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 :(得分: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>";
}
脚本检查DateOfBirth字段中的前5个字符是否等于您在$ dat中创建的字符串。
更优雅的方式是使用内置日期格式,即
DATE_FORMAT(DateOfBirth,'%m-%d') = $dat
答案 1 :(得分: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
的教程
http://www.w3schools.com/sql/func_date_format.asp
答案 2 :(得分:0)
mysql中有一些函数可用于格式化您的日期,以便您可以使用这些
您可以使用STR_TO_DATE()将字符串转换为MySQL日期值或DATE_FORMAT函数将日期转换为您需要的任何格式
STR_TO_DATE(datestring, '%d/%m/%Y')
DATE_FORMAT(date,'%d/%m/%Y')