2013-07-31 4 views
0

Как мы можем найти разницу дней в PHP, где даты могут быть очень от 1/1/1 до 1/1/1000000.Найти разницу между двумя датами с диапазоном тысяч лет

strtotime(), mktime(), date-> diff() все эти функции не могут быть полезны, поскольку это больше, чем ограничение временной отметки Unix.

+0

, по крайней мере, объясните причину его голосования. –

+4

Большинство языков, с которыми я столкнулся, имеют ограничение на доступный диапазон дат, вам может быть лучше написать собственный алгоритм. – Robadob

+4

Из чистого любопытства, для чего вам это нужно? – h2ooooooo

ответ

2

Насколько я знаю, DateTime допускает даты в любые периоды времени. Еще до unix.

Возможно, это будет fial на 1/1/10000000, но это требует тестирования.

Чтобы получить разницу, используйте Diff

$datetime1 = new DateTime('2009-10-11'); 
$datetime2 = new DateTime('2009-10-13'); 
$interval = $datetime1->diff($datetime2); 
echo $interval->format('%R%a days'); 

Если Diff не работает на своих диапазонах, попробуйте этот https://stackoverflow.com/a/676828/486780.

+0

Да, это разрешено. но вопрос заключается в том, чтобы выяснить разницу между двумя датами в днях. –

+0

Разница проста. Увеличенный ответ. Ах, только что заметил ваш вопрос о различии в вопросе. Если diff не работает, вам может понадобиться сделать это вручную. – ZorleQ

+0

Пожалуйста, внимательно прочитайте вопрос. –

0

DateTime может хранить дату, но если вы используете другие вспомогательные функции, они не будут работать, поскольку они работают с базовыми типами, а не с более структурированным представлением. Вероятно, вам нужно будет создать свои собственные утилиты.