请客气,请帮助我,我对显示天数是否定负有疑问,该天数已经存在,其余时间将在明年。示例:今天是2016年3月29日和某个人的生日od是每年27。3月,用我完成的PHP编写为“ dayToBirthday”,值为“ -2”,但右侧为“ 363”。我无法写条件“如果dayToBirthday <0,否则dayToBirtday +365天”。请您能帮帮我,非常感谢。
<?php
.
.
. //connection
.
.
$action = '';
$sql = "SELECT members.*, datediff(CURDATE(),DATE_FORMAT(birthday, concat(YEAR(CURDATE()), '-%m-%d')))*(-1) AS dayToBirthday, TIMESTAMPDIFF(YEAR,birthday,CURRENT_DATE) as age FROM members";
$where = '';
if(isset($_GET["id"])) {
$id = $_GET["id"]; //geting id value which we are passing from table headers
$action = $_GET["action"]; // geting action value which we are passing from table headers
//we are checking condition if $action value is ASC then $action will set to DESC otherwise it will remain ASC
if($action == 'ASC') {
$action='DESC';
} else {
$action='ASC';
}
if($_GET['id']=='id') {
$id = "id";
} else if ($_GET['id']=='name') {
$id = "name";
} else if($_GET['id']=='birthday') {
$id="vorname";
}
$where = " ORDER BY $id $action ";
$sql = "SELECT members.*, datediff(CURDATE(),DATE_FORMAT(birthday, concat(YEAR(CURDATE()), '-%m-%d')))*(-1) AS dayToBirthday, TIMESTAMPDIFF(YEAR,birthday,CURDATE()) as age FROM members" . $where;
}
?>
您可以将此查询与IF
当前月份/日期与生日月份/日期进行比较的条件一起使用:
SELECT members.*,
IF
(
SUBSTR( CURRENT_DATE, 6, 5 ) > SUBSTR( birthday, 6, 5 ),
TIMESTAMPDIFF( DAY, CURRENT_DATE, STR_TO_DATE( REPLACE( birthday, YEAR(birthday), YEAR(NOW())+1 ), '%Y-%m-%d' ) ),
TIMESTAMPDIFF( DAY, CURRENT_DATE, STR_TO_DATE( REPLACE( birthday, YEAR(birthday), YEAR(NOW()) ), '%Y-%m-%d' ) )
) as dayToBirthday,
TIMESTAMPDIFF(YEAR,birthday,CURRENT_DATE) as age
FROM members
请注意,我使用奢侈的子字符串比较,而不是DAYOFYEAR
为了避免to年问题而更加自在。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句