2010-08-29 4 views
2

Simple, hein? -sigh-"Heure: Minute" différence entre deux chaînes "Heure: Minute"

Une fonction. Deux arguments de chaîne (je suppose que cela n'a pas d'importance le type). Renvoyer une chaîne qui est le différence de temps entre les arguments. Pensez-y comme un compteur à votre CS Internet-caffe local.

function time_diff($start, $stop) { 
    ... 
    return $diff; 
} 

echo "Your time playing CS: " . time_diff('19:37', '00:05') . ". Go home!"; 

J'ai essayé. Trop gêné de dire combien de temps j'ai investi dans cet algorithme. Je ne peux pas changer le format (parlez-moi de ça!).

Si vous connaissez une classe, un fichier ou un code provenant des profondeurs des internets, je serais heureux de l'utiliser.

"Merci beaucoup".

+0

ce qui a échoué? – Woot4Moo

+1

Au lieu de travailler avec des chaînes et juste des temps, vous devriez plutôt obtenir un horodatage complet du début/fin et ensuite soustraire les temps .. Sinon, je pourrais être là pendant 2 jours et 1 minute et il afficherait juste 1 minute .. – poke

+0

@ Woot4Moo - Si je viens avec un script quasi-fonctionnel, je serais heureux de vous le dire. L'échec implique un code. Je n'en ai pas. – nush

Répondre

4

Vous ne pouvez pas le faire correctement à moins que vous connaissez:

  • Le fuseau horaire.
  • Le jour associé à ces heures.

Une fois que vous savez que vous pouvez faire:

date_default_timezone_set('timezone here'); 
$seconds_diff = strtotime("2010-08-29 $end") - strtotime("2010-08-29 $start"); 
+1

Le fuseau horaire est complètement redondant si vous regardez seulement deux moments différents au même endroit ... – poke

+0

@poke Non, ce n'est pas le cas. Voir par exemple http://codepad.viper-7.com/XpC6pL – Artefacto

+0

Eh bien, mon hypothèse est que, peu importe si vous vivez, l'intervalle de temps de 14h00 à 16h00 est de 2 heures. Alors qu'est-ce que cela a à voir avec les fuseaux horaires? Qu'est-ce que j'oublie ici? – nush

Questions connexes