Converti la string in tempo in php

Come convertire "2011-11-03T17:27:56Z" in time in php.

Voglio la differenza di orario dall'ora corrente.

vale a dire se la differenza di orario dall'ora corrente è di 10 minuti, io voglio 10 minuti. Se il suo 1 giorno allora voglio 1 giorno.

Questo piccolo frammento ti darà la differenza in secondi tra ora e la data specificata.

 $dateString = "2011-11-03T17:27:56Z"; $date = strtotime($dateString); $diff = time() - $date; echo $diff; 

Per dargli il formato specifico che stai richiedendo puoi utilizzare la function qui sotto che ho trovato qui :

 function time_diff($s) { $m = 0; $hr = 0; $d = 0; $td = "now"; if ($s > 59) { $m = (int)($s/60); $s = $s-($m*60); // sec left over $td = "$m min"; } if ($m > 59) { $hr = (int)($m / 60); $m = $m - ($hr*60); // min left over $td = "$hr hr"; if ($hr > 1) { $td .= "s"; } if ($m > 0) { $td .= ", $m min"; } } if ($hr > 23) { $d = (int) ($hr / 24); $hr = $hr-($d*24); // hr left over $td = "$d day"; if ($d > 1) { $td .= "s"; } if ($d < 3) { if ($hr > 0) { $td .= ", $hr hr"; } if ($hr > 1) { $td .= "s"; } } } return $td; } 

Combinando entrambi è questo che ottieni:

 $dateString = "2011-11-03T17:27:56Z"; $date = strtotime($dateString); $diff = time() - $date; echo time_diff($diff); 

Uscite:

8 giorni

 $diffInSecs = time() - strtotime('2011-11-03T17:27:56Z'); 

Esempio di lavoro: ( codepad qui )

 <?php $time_str = "2011-11-03T17:27:56Z"; //echo date('d/m/y H:i:s', strtotime($time_str)); $diff = abs(strtotime("now") - strtotime($time_str)); $years = floor($diff / (365*60*60*24)); $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); $hours = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24)/ (60*60)); $minuts = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60)/ 60); $seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60 - $minuts*60)); printf("%d years, %d months, %d days, %d hours, %d minuts\n, %d seconds\n", $years, $months, $days, $hours, $minuts, $seconds); 

(tempo diff preso qui: come calcolare la differenza tra due date utilizzando PHP? )

Credo che tu voglia la function strtotime() :

 $some_time = strtotime("2011-11-03T17:27:56Z");//outputs a UNIX TIMESTAMP $time_diff = (time() - $some_time); if ($time_diff > 86400) { echo round($time_diff / 86400) . " days"; } else if ($time_diff > 3600) { echo round($time_diff / 3600) . " hours"; } else { echo round($time_diff / 60) . " minutes"; } 

http://us.php.net/manual/en/function.strtotime.php

La function prevede di ricevere una string contenente un formato di data inglese e cercherà di analizzare tale formato in un timestamp Unix