1

它相当于MySQL to_days()函数

是否有一个内置PHP函数可以做到这一点,还是我需要拼凑一些东西?

4

2 回答 2

8

您需要自己编写,但这并不难:

$now = new DateTime();
$zero = new DateTime('0000-00-00'); // -0001-11-30 - Nov 30, 1 BC. Interesting.
$diff = $now->diff($zero);
echo $diff->format('%a days'); // 735728 days

演示使用文字年份零。您显然希望在其中放置一个有效日期。

$now = new DateTime();
$zero = new DateTime('0001-01-01'); 
$diff = $now->diff($zero);
echo $diff->format('%a days'); // 735330 days

演示

作为一个班轮:

echo (new DateTime())->diff(new DateTime('0001-01-01'))->format('%a days');

作为一个函数:

function toDays($date) {
    return (new DateTime())->diff(new DateTime($date))->format('%a');
}
于 2014-04-08T17:28:20.930 回答
1

您可以使用儒略日计数,即使用 cal_to_js(),请参阅http://www.php.net/manual/de/function.cal-to-jd.php,即使公历中没有第 0 年.

于 2014-04-08T17:34:59.850 回答