假設我有一個日期時間對象2015-12-31T12:59
。有沒有一種方法可以在PHP中查找當前日期時間與上述日期 - 時間對象之間的差異?基本上,有沒有辦法從這個時刻到未來的日期 - 時間對象指定的日期時間內以秒爲單位找出時間?在PHP中查找日期時間對象與當前時間(以秒爲單位)之間的差異
我做了一些挖掘,發現在PHP中有DateTime
類,但我不確定它是否採用2015-12-31T12:59
這樣的格式作爲輸入。
假設我有一個日期時間對象2015-12-31T12:59
。有沒有一種方法可以在PHP中查找當前日期時間與上述日期 - 時間對象之間的差異?基本上,有沒有辦法從這個時刻到未來的日期 - 時間對象指定的日期時間內以秒爲單位找出時間?在PHP中查找日期時間對象與當前時間(以秒爲單位)之間的差異
我做了一些挖掘,發現在PHP中有DateTime
類,但我不確定它是否採用2015-12-31T12:59
這樣的格式作爲輸入。
您可以使用date()函數將日期轉換爲自Unix時代以來的秒數,然後您可以減去自Unix時代。
$myDate = date('2015-12-31T12:59'); //convert your date in seconds
$now = time(); //convert now in seconds
$numberOfSeconds = $myDate - $now; //make the difference
注: Unix紀元= 1970年1月1日00:00:00 GMT
Unix系統上的日期可以以Epoch格式存儲(例如1970-01-01 00:00:00之間的秒數)。
的時間()功能做到這一點自然和其他日期可以像的strtotime()轉換。所有你需要做的就是減去一個從對方獲得秒的時間差
,你可以嘗試使用這種方式這一結果會給以秒爲單位的不同,分,小時,天...
//use this way-----------------------
$c_time=//your current time
$date_current_time = date('Y-m-d H:i:s');
$datetime1 = new DateTime($c_time);
$datetime2 = new DateTime($date_current_time);
$difference = $datetime1->diff($datetime2);
$f6=$difference->y.' Y ';
$f5=$difference->m.' M';
$f4=$difference->d.' D';
$f3=$difference->h.' hr';
$f2=$difference->i.' min';
$f1=$difference->s.' sec';
if($f2==0 && $f3==0 && $f4==0 && $f5==0 && $f6==0)
{
if($f1<=20)
{
$time=" few sec ago";
}
else if($f1>20)
{
$time=$f1." ago";
}
}
else if($f3==0 && $f4==0 && $f5==0 && $f6==0)
{
if($f2<=2)
{
$time=" few min ago";
}
else if($f2>2)
{
$time=$f2." ago";
}
}
else if($f4==0 && $f5==0 && $f6==0)
{
$time=$f3." ago";
}
else if($f5==0 && $f6==0)
{
$time=$f4." ago";
}
else if($f6==0)
{
$time=$f5." ago";
}
else
{
$time=$f6." ago";
}
可能這將有助於...獲得時間差異
我不完全相信你如何建立一個像'2015-12-31T12一個DateTime對象:59',但你可以簡單地在T字符上「爆炸」它,並重建一個正常的DateTime字符串作爲DateTime類的輸入。 – icecub
@icecub我從HTML中的輸入類型'datetime-local'中獲得了上述格式的日期時間對象。 –
我明白了。你知道'datetime-local'在IE或Firefox中不起作用嗎?它在Chrome中運行正常。儘管如此,除非你100%確定所有的用戶都會使用Chrome瀏覽器(而且你幾乎從未使用過Chrome瀏覽器!),但我不會依賴於此來獲取日期時間對象。 – icecub