2016-09-29 221 views
1

好吧,所以基本上我有兩個變量,一個叫做$day,另一個叫$time我試圖做的是將這兩個變量轉換爲unix時間戳,例如;將日期轉換爲時間戳

$day = 'Monday'; 
$time = '14:00:00'; 

那麼我現在尋找的是一個$timestamp變量,將回聲出下一個Monday在UNIX時間戳格式上來的14:00:00

我猜這其中最難的部分是事實,即一天中的某一天不是特定日期,這意味着它將不得不選擇下一個monday即將到來,或者下一個tuesday...例如。

感謝您的任何幫助。

+0

獲取當前日期,將尋求到下週一,增加你的時間,並獲得UNIX的時間戳。現在執行該代碼 - 如果遇到任何問題,datetime函數的PHP文檔非常好。 –

回答

4

DateTime類的構造是在搞清楚這樣的事情就不錯:

<?php 
$day = 'Monday'; 
$time = '14:00:00'; 

$date = new DateTime("next $day $time"); 
echo $date->getTimestamp(); 
// 1475503200 
+1

Thankyou;真的很欣賞那很多。解決我原來的問題將標記爲答案很快:) –

0
$datetime = new DateTime(); 
echo $datetime->format('U'); 

解決方法一:

mktime - 獲取Unix時間戳的日期

echo mktime(23, 24, 0, 11, 3, 2009); 
1257290640 

返回與給定參數對應的Unix時間戳。此時間戳是一個長整型,包含Unix Epoch(1970年1月1日00:00:00 GMT)與指定時間之間的秒數。

參數可能從右到左依次排列;根據當地的日期和時間,這樣省略的任何參數將被設置爲當前值。

mktime($isAM ? $hrs : ($hrs + 12), $mins, $secs, $m, $d, $y); 

要處理上午/下午只是添加12小時,如果PM。

解決方法二:

strtotime成功則返回時間戳,否則返回FALSE。

echo strtotime('2012-07-25 14:35:08'); 

輸出:

1343219708