2

给定一个时间戳,将该日期四舍五入到第二天最接近的午夜的最优雅的解决方案是什么?

例如1374246685(19/07/13 10:11:25) 将四舍五入为1374296400(20/07/13 00:00:00)。

4

2 回答 2

7

DateTime可以很好地做到这一点:-

$midnight = (new \DateTime())->setTimestamp(1374246685)->modify('tomorrow');

看到它工作

不过 PHP 版本 >= 5.4。

否则它将是:-

$midnight = new \DateTime();
$midnight->setTimestamp(1374246685)->modify('tomorrow')->setTime(0, 0);

看到它工作

于 2013-07-19T15:00:58.510 回答
1

比 Pete 的解决方案更优雅:

$tomorrowMidnight = strtotime('tomorrow');

查看http://www.php.net/manual/en/datetime.formats.relative.php - 你可以用它做很多花哨的东西:)

于 2013-07-19T14:20:44.883 回答