迄今为止添加一段时间循环



我有一个日期进入用户指定的循环。日期始终来自格式为" 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++;
}

最新更新