2015-08-24 45 views
0

假設我有一個日期時間對象2015-12-31T12:59。有沒有一種方法可以在PHP中查找當前日期時間與上述日期 - 時間對象之間的差異?基本上,有沒有辦法從這個時刻到未來的日期 - 時間對象指定的日期時間內以秒爲單位找出時間?在PHP中查找日期時間對象與當前時間(以秒爲單位)之間的差異

我做了一些挖掘,發現在PHP中有DateTime類,但我不確定它是否採用2015-12-31T12:59這樣的格式作爲輸入。

+0

我不完全相信你如何建立一個像'2015-12-31T12一個DateTime對象:59',但你可以簡單地在T字符上「爆炸」它,並重建一個正常的DateTime字符串作爲DateTime類的輸入。 – icecub

+0

@icecub我從HTML中的輸入類型'datetime-local'中獲得了上述格式的日期時間對象。 –

+1

我明白了。你知道'datetime-local'在IE或Firefox中不起作用嗎?它在Chrome中運行正常。儘管如此,除非你100%確定所有的用戶都會使用Chrome瀏覽器(而且你幾乎從未使用過Chrome瀏覽器!),但我不會依賴於此來獲取日期時間對象。 – icecub

回答

2

您可以使用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

1

Unix系統上的日期可以以Epoch格式存儲(例如1970-01-01 00:00:00之間的秒數)。

時間()功能做到這一點自然和其他日期可以像的strtotime()轉換。所有你需要做的就是減去一個從對方獲得秒的時間差

0

,你可以嘗試使用這種方式這一結果會給以秒爲單位的不同,分,小時,天...

//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"; 
    } 

可能這將有助於...獲得時間差異

相關問題