我有从数据库输出的日期:
$deadline = $row['DEADLINE'];
当我打印$截止日期时,它返回:2015-05-03 18:00:00
现在我想要一种方法,在每天24小时之前找到每天,直到今天为止,然后使用这些值中的每一个插入数据库中的新表。
所以在这种情况下我想:
2015-05-03 18:00:00
2015-05-02 18:00:00
2015-05-01 18:00:00
2015-04-30 18:00:00
2015-04-29 18:00:00
要在数据库中插入5个新行。所以我知道我今天需要约会:
$now = date("Y-m-d H:i:s");
然后我有截止日期:
$deadline = $row['DEADLINE'];
然后我可以找到天数的差异:
$dateDiff = ($deadline - $now)/(24*60*60);
这给了我一个数字(在这种情况下它将是5)。那我可以用这个数字显示5天前的日期和时间吗?
不知道如何将它们全部插入。感谢您的帮助。
答案 0 :(得分:0)
使用DateTime对象,这是最简单的方法:
PHP:
$now = new datetime();
$sub = new datetime();
for($i=0;$i<5;$i++)
{
$sub->sub(new DateInterval('P1D'));
echo $sub->format('Y-m-d H:i:s').'<br />';
echo $sub->diff($now)->format('%a days').'<br />';
}
输出:
2015-04-29 14:18:09
1 days
2015-04-28 14:18:09
2 days
2015-04-27 14:18:09
3 days
2015-04-26 14:18:09
4 days
2015-04-25 14:18:09
5 days
答案 1 :(得分:0)
这非常完美,但它可能会让你开始
尝试使用日期时间http://php.net/manual/en/class.datetime.php
或碳/碳包装:https://github.com/briannesbitt/Carbon
$datetime = new DateTime("2015-04-03 18:00:00");
$now = new DateTime('NOW');
$difference = $datetime->diff($now);
echo '<pre>';
for($i = 1; $i <= $difference->days; $i++)
{
if($difference->invert){
var_dump (
$temp = $datetime
->modify('-1 day')
->format('Y-m-d H:i:s')
);
}else{
var_dump (
$temp = $datetime
->modify('+1 day')
->format('Y-m-d H:i:s')
);
}
}