2013-12-13 93 views
0

好吧我做的代碼,下載任何文件到服務器,但有一個問題,我會執行cronjob,將刪除文件夾,然後用相同的名稱,使新的,但我想給信息用戶當該cron將運行,所以這意味着我需要的代碼,將自動檢測下一次腳本將被執行,我有cronjob腳本,但我需要修改索引,所以時間將顯示在格式計算時間,直到下一個cronjob

時間,直到樣帶的cronjob:這裏$時間

這是我的cronjob

0123碼
<?php 
if (!is_dir('downloads')) { 
    rmdir('downloads'); 
} 

mkdir('downloads'); 
?> 
+0

什麼是你的crontab條目看起來像? – AmazingDreams

+0

它尚未製成... –

+0

我將假定它每小時運行一次。如果你做'60 - ((time()/ 60)%60)',你會得到剩下的分鐘數,直到下一個cronjob。這有幫助嗎? – AmazingDreams

回答

0

根據上面的評論,必須有更乾淨的方法來做到這一點。

$tonight = strtotime(date('Y-m-d', strtotime('+1 day')).' 00:00:00'); 
$diff = ($tonight - time())/60; // Time difference in minutes 

echo "Hours: ". floor($diff/60)." Minutes: ". ($diff % 60); 

編輯: 這也適用

$tonight = strtotime('midnight +1 day'); 
+0

下一次清理:時間:15分鐘:1得到的差異向後 –

+0

@AlešKalan落後?我不明白你的意思。你的意思是說,它是用戶上一個午夜而不是'下一個午夜'?我認爲你在複製我的代碼時犯了一個錯誤,我測試了幾次,並將不同的日期/時間填入時間戳。 – AmazingDreams

+1

我解決了:)我是時區,服務器時間現在是09:06上午,這裏是下午3:07 –

1
<?php 
    $now = new DateTime(); 
    $midnight = new DateTime('midnight +1 day'); 
    $timeToGo = $now->diff($midnight); 
    echo $timeToGo->format('%h hours %i minutes and %s seconds to next execution'); 
?> 

UPDATE:使用AmazingDreams符號,它更時尚...... :-)

+0

調用未定義的方法DateTime :: diff()在第11行的/home/u830572651/public_html/dl/index.php –

+0

DateTime :: diff在5.3.0中實現(http://cz1.php.net/manual /en/datetime.diff.php) – AmazingDreams

+0

是的,抱歉沒有指定... – MarcoS