2011-06-14 47 views
2

所以我很難過,因爲我有基本的想法,但我正在尋找一些你的專業知識。日曆PHP的問題,讀你的電腦日曆

我在做什麼:我想基本上編寫一個使用Twilio的應用程序,因爲這是另一個問題,您不需要知道這些應用程序。這個應用程序所做的就是在我的虛擬主機上調用一個php文件並「觸發php代碼」

我需要幫助的是如何在我的計算機上保存一週中的日曆記錄。我的意思是,如果像管理員這樣的人擁有我爲他們編寫的特定代碼,並且該代碼每週都會自動運行,但是特定的一週他們不希望代碼運行,而是希望運行其他代碼那一週。我該如何使用php來查找一週結束時間或者在計算機屏幕右下角使用該日曆記錄星期,以便我的程序在管理員希望通過一般代碼運行不同的代碼後知道這周是無需再運行該管理員不規則代碼,就可以返回到通常的自動運行代碼。

如果你仍然不知道我在說什麼。我會盡力解釋更多。考慮2個獨立的代碼。一個自定義和另一個自動化。自動化程序會自動運行。但有一天,管理員選擇了那一週,他不想像往常一樣按照常規方式運行自動代碼,而是在那一週他想運行自定義代碼,並在一週結束後返回運行自動代碼照常。

我希望這說得更清楚。我知道在PHP中給出了日期。但我真的需要關於如何做到這一點的專家意見。

回答

0

通常對於這樣的事情,我會爲每個腳本生成一個「nextrun_datetime」用戶組合。默認情況下,它會有一個重複間隔,在你的情況下,7天。

如果用戶本週不想運行它,他們可以將它「推出」N天,之後將適用正常更新間隔。要獲得一次性鏡頭,我會允許更新間隔0或-1來表示。

有了這樣的事情,無論何時更新腳本(或保存,運行,重新計劃),如果有腳本,就可以計算下一個日期。從那裏,這是一個相對簡單的cron作業,應該檢查最後N分鐘的任何腳本運行。

0

除非您的客戶端機器運行在與服務器完全不同的日曆上,否則爲什麼還要考慮客戶的日期是什麼?除非客戶端和服務器位於不同的時區,否則客戶端日期將與服務器日期相同,除了午夜前的幾個小時。

爲什麼依賴於客戶端來觸發服務器端代碼?如果這是一件經常發生的事情,請使用cron或其他服務器上的可用代碼自動運行代碼。如果管理員想要覆蓋WHICH代碼運行,那麼您可以提供一個界面來更改執行的內容。點擊網站上的一個按鈕,並設置一個標誌,告訴定時作業運行腳本B而不是腳本A.

0

我做了類似的事情。基於一天(例如星期一,星期日),我會在php中做一些不同的事情。

我這是怎麼做的:

$today = date('w'); 
if ($today== 0){ 
    //its sunday 
    exec('rmdir C:\myApp\oldLogs'); 
} 
else{ 
    echo '1 -> monday, 2-> tuesday etc...' 
} 

你也可以做一個日期從字符串例如

$date = strtotime("8 days ago 14:00"); 
/* 
    or "Monday next week", "+1 week 2 days 4 hours 2 seconds","yesterday noon","10 September 2000" etc... 
*/