我有一个日期进入用户指定的循环。日期始终来自格式为" y-m-d"字符串的数据库。我知道,只要以这种格式,我可以直接比较字符串,但是,我还尝试使用strttime将日期转换为不运气的日期。我正在尝试确定用户在付款到期之前的薪水
这是我拥有的
$due_date = '2016-12-13';
//count paychecks set to zero and added to by loop
$paychecks = 0;
//users next paycheck ('Y-m-d' ALWAYS)
$next_payday = $user['next_payday']; //equal to '2016-12-02'
//how often they get paid (int)
$frequency = 14;
while(strtotime($next_payday) <= strtotime($due_date)){
//next_payday equals 1480654800 when coming into the loop
//due_date equals 1481605200 when coming into the loop
//add 14 days to the date
$next_payday = date('Y-m-d', strtotime("+" .$frequency." days"));;
//add to paychecks
$paychecks++;
}
问题是循环永远不会停止。它不断前进。
感谢任何人都可以给我的任何帮助。
ah,请确保使用strttime获取整数(代表以来以来以来以来的秒数)进行比较,并将您的天频率乘以一天(86400)中的秒数(86400):
$due_date = strtotime('2016-12-25');
//count paychecks set to zero and added to by loop
$paychecks = 0;
//users next paycheck (unixtime for comparison)
$next_payday = strtotime($user['next_payday']);
//how often they get paid (int)
$frequency = 14;
while($next_payday <= $due_date){
//add 14 days to the date
$next_payday += ($frequency * 86400);
//add to paychecks
$paychecks++;
}