我有一個web調度應用程序,我目前正在改寫,並有一些關於如何處理定期約會的問題(我知道不缺「什麼是最好的方式來做到這一點「當談到重複應用)。php - 使用「星期二隔兩週」的日期工作
所以我想提供定期約會,用戶可以安排像週六,6月2日約會的約會,應該每隔一週重複上週六對一些預先確定的時間段(如1年)。
什麼PHP函數可以幫助我確定哪個日期「每隔一個星期六」落在?我附上了一張關於我的用戶界面的圖片以供澄清。
我有一個web調度應用程序,我目前正在改寫,並有一些關於如何處理定期約會的問題(我知道不缺「什麼是最好的方式來做到這一點「當談到重複應用)。php - 使用「星期二隔兩週」的日期工作
所以我想提供定期約會,用戶可以安排像週六,6月2日約會的約會,應該每隔一週重複上週六對一些預先確定的時間段(如1年)。
什麼PHP函數可以幫助我確定哪個日期「每隔一個星期六」落在?我附上了一張關於我的用戶界面的圖片以供澄清。
我個人認爲可以使用DateTime對象並使用DateInterval類。
在你的上述情況下,你需要制定出第一個/下週六的日期,然後只需用P2W日期間隔
基本例如工作
$dow = 'saturday';
$step = 2;
$unit = 'W';
$start = new DateTime('2012-06-02');
$end = clone $start;
$start->modify($dow); // Move to first occurence
$end->add(new DateInterval('P1Y')); // Move to 1 year from start
$interval = new DateInterval("P{$step}{$unit}");
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $date) {
echo $date->format('D, d M Y'), PHP_EOL;
}
/*
Sat, 02 Jun 2012
Sat, 16 Jun 2012
Sat, 30 Jun 2012
Sat, 14 Jul 2012
…
Sat, 20 Apr 2013
Sat, 04 May 2013
Sat, 18 May 2013
Sat, 01 Jun 2013
*/
嗯,我會先設定開始日期;當這一天來臨,你只需要:
$next_date = strtotime('+2 weeks');
這讓你在同一天,但只有兩個星期後。並且這個循環繼續:)
可以使用數據庫列來存儲你的時間在幾秒鐘內:
UPDATE appointments SET dtime=UNIX_TIMESTAMP() WHERE id=5
然後,你可以檢查這個值,無論特定時期剛剛來過/通過:
mysql_query("SELECT id FROM appointments WHERE dtime>='".(strtotime("-1 week"))."');
所選擇的ID是1周或更長。
像strtotime('下週六')''很容易,除非你想要更復雜的東西:) –
所以它被用於日曆中的用戶,他們積極尋找有關他們約會的信息是否需要提醒?還是需要自己發送一些自動化的消息或類似的東西? –
您好,我的應用程序可以讓用戶安排約會,然後向即將到來的約會的客戶發送提醒。在這種情況下,我希望爲用戶預訂「星期六每隔一週」(或我的用戶界面可創建的任何其他組合)。我擔心的是,僅僅增加14天(在這種情況下)並不總是意味着任命將在星期六進行。 – Greg