在PHP中进行日期模运算的简单方法?

在PHP中进行日期模运算的简单方法?,php,Php,我有28项独特的活动,每天一项。事件在28天后重复。是1。事件再次发生 假设第一个事件是1970-01-01。事件28是1970-01-28 今天是2015-10-16,我如何知道今天应该举办什么活动?我如何知道在任何给定的日期应该举办什么活动?(仅日期为1970-01-01和9999-12-31) 我想把日期转换成时间戳,然后做28*24*60*60的模运算,然后再转换回日期,但我担心可能会有一些余量。有什么想法吗?您可以使用DateTime::diff函数,如下所示: $datetime1

我有28项独特的活动,每天一项。事件在28天后重复。是1。事件再次发生

假设第一个事件是
1970-01-01
。事件28是
1970-01-28

今天是
2015-10-16
,我如何知道今天应该举办什么活动?我如何知道在任何给定的日期应该举办什么活动?(仅日期为1970-01-01和9999-12-31)


我想把
日期
转换成
时间戳
,然后做28*24*60*60的模运算,然后再转换回
日期
,但我担心可能会有一些余量。有什么想法吗?

您可以使用
DateTime::diff
函数,如下所示:

$datetime1 = date_create('1970-01-28');
$datetime2 = date_create('2015-10-16');
$interval = date_diff($datetime2, $datetime1);

/// Get total number of days
$days = $interval->format('%a');

/// Get the remainder of the division by the number of events
$eventNumber = $days % 28;

另一种解决方案是使用unix时间戳以秒为单位获取日期差异。由于01-01-1970的定义是零,所以您所要做的就是:

$today = mktime(); // Or $today = mktime(12,0,0,10,16,2015);
$mod = floor($today/86400) % 28;