2013-11-26 66 views
2

我想讓strtotime給我一個時間戳,但我只知道它是一小時零一分鐘,它是行中的下一個時間戳。 FX。獲取strtotime在給定時間找到下一個時間戳

如果給定的小時和分鐘是01:00(上午),我要求它返回01:00(上午)的時間戳,如果是在19:00前一天,我希望它返回第二天01:00的時間戳,但如果是在00:30的午夜之後,則應返回同一日期01:00的時間戳。

爲了簡化它,這是一個時間的下一次出現。

Strtotime在同一天給我時間,如果不是下一次出現。

+0

你能後的代碼片段,你試過嗎? PHP處理日期/時間的方法有幾種,因此,查看您採用哪個方向會很有幫助。 –

+0

'$ start = strtotime(「next」。$ _ POST ['starttime']);' – Hedam

回答

4

您可以輕鬆生成時間戳,查看它是否已經過去,然後增加一天。

也許這樣的事情?

$timestamp = strtotime("1:00 am"); 
if($timestamp < time()) { 
    $timestamp = strtotime("+1 day",$timestamp); 
} 

或者,如果你想它擰緊至一個班輪:

$string = "1:00 am"; 
$timestamp = (strtotime($string) > time()) ? strtotime($string) : strtotime("tomorrow " . $string); 
+0

但是如果我們午夜過去呢?然後它會返回正確的時間戳,而不會添加1天。 – Hedam

+0

猜猜我不明白這個問題。如果是星期二下午4點,這個解決方案將在星期三凌晨1點給你。如果是星期三上午12點半,這個解決方案仍然會在星期三凌晨1點給你。這不是你想要的嗎? – jszobody

+0

@RoboForm給我一個例子,說明這個解決方案沒有提供你想要的東西,不知道我看到它。 – jszobody