我需要在日期进行一些操作。 从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);
但它没有用 - 计算中有错误,我不知道为什么。
答案 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.php,http://es2.php.net/manual/en/datetime.add.php和http://es2.php.net/manual/en/dateinterval.construct.php