2015-10-16 37 views
1

我有28個獨特的事件,每天一個事件。事件在28.之後重複1.是事件。簡單的方法來模擬日期在PHP中?

可以說第一個事件是1970-01-01。事件28是1970-01-28

今天是2015-10-16,我該如何找出今天的事件?我如何知道任何給定日期的事件? (僅僅日期>1970-01-01和< 9999-12-31)。

我正在考慮將date轉換爲timestamp,然後模28 * 24 * 60 * 60,然後將其轉換回date,但恐怕可能會有一些餘量。有任何想法嗎?

回答

1

您可以使用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; 
1

另一種解決方案是使用unix時間戳來獲得秒爲單位的日期差異。並且從01-01-1970的定義爲零,所有你需要做的是:

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