PHP上的日期操作

时间:2013-03-10 15:50:10

标签: php date days

我需要在日期进行一些操作。 从DB脚本中读取操作的日期和频率(例如21天),并应计算何时将是自实际日期以来的下一个操作。我试图在某些方面做到这一点(我很难用英文写,所以下面你可以找到代码)。

    //$unix_on - date from DB
    //$devices[$i]['freq'] - frequency of actions
    $unix_on=strtotime($devices[$i]['date_on']);
    $unix_today=strtotime(date('Y-m-d'));
    $actions=($unix_today-$unix_on)/(86400*$devices[$i]['freq']);
    $b=explode(".", $actions);
    $a='0'.'.'.$b['1'];
    $f=$a*$devices[$i]['freq'];
    $d=$unix_today+($f*86400);
    $e=date("Y-m-d",$d); 

但它没有用 - 计算中有错误,我不知道为什么。

2 个答案:

答案 0 :(得分:1)

strtotime比你使用它更强大。试试这个:

$e = date("Y-m-d",strtotime($devices[$i]['date_on']." +".$devices[$i]['freq']."days"));

答案 1 :(得分:1)

$dateOn = new DateTime($devices[$i]['date_on']);
$frecuency = new DateInterval('P' . $devices[$i]['freq'] . 'D'); // Period of x Days

$dateOn->add($frequency);

$e = $dateOn->format('Y-m-d');

请参阅http://es2.php.net/manual/en/datetime.construct.phphttp://es2.php.net/manual/en/datetime.add.phphttp://es2.php.net/manual/en/dateinterval.construct.php