我已經創建了一個函數來生成一週前,今天和一週後的生日成員列表。該功能是PHP日期比較找到時間戳1970年之前的生日?
$m= date("m"); // Month value
$de= date("d"); //today's date
$y= date("Y"); // Year value
for($i=0;$i<count($members);$i++){
$m_bday = strtotime($members[$i]->dob);
$bday_date = date('d',$m_bday);
$bday_month = date('m',$m_bday);
$bday = strtotime(date('Y-m-d',mktime(0,0,0,$bday_month,$bday_date,$y)));
//echo $bday_date."</br>".$bday_month."</br>".$members[$i]->dob."</br>".date('Y-m-d',$bday);exit;
$week_before = strtotime(date('Y-m-d', mktime(0,0,0,$m,($de-7),$y)));
$week_after = strtotime(date('Y-m-d', mktime(0,0,0,$m,($de+7),$y)));
if(date('d-m') == date('d-m',$bday)){
$this->present_bday[] = array('mem_name'=> $members[$i]->name);
}
else if(date('d-m',$week_before) <= date('d-m',$bday) && date('d-m',$bday) < date('d-m')){
$this->past_bday[] = array('mem_name' => $members[$i]->name);
}
else if(date('d-m')< date('d-m',$bday) && date('d-m',$bday) <= date('d-m',$week_after)){
$this->future_bday[] = array('mem_name' => $members[$i]->name);
}
}
從數據庫返回的日期格式爲yyyy-mm-dd
即1960-06-12
。此代碼在1周之前和今天工作正常,但返回後1周內,如果年份低於1970年,並且條件完全失敗後1周。
任何人都可以爲我提供正確的日期操作以獲得正確的結果嗎?
試試上面的代碼 –
使用爆炸和mktime將工作,但是當我們在年底增加像日期+7像30日,它將返回同一個月的第6日 –
不返回下個月第6日, –