Question

J'ai deux valeurs en php:

Valeur: 20120101151420
20120101151306

ce que je cherche à comprendre HOR en quelques secondes des deux valeurs. (Dois-je besoin de convertir les formats de temps .comment)

Était-ce utile?

La solution

echo strtotime("20120101151420")- strtotime("20120101151306");

Sortie

74

Autres conseils

function DateDiffDigit($firstdate, $seconddate)
{
    if (strlen($firstdate) != 14 || strlen($seconddate) != 14)
        return 0;

    $a = mktime( substr($firstdate, 8, 2),
                substr($firstdate, 10, 2),
                substr($firstdate, 12, 2),
                substr($firstdate, 4, 2),
                substr($firstdate, 6, 2),
                substr($firstdate, 0, 4) );

    $b = mktime( substr($seconddate, 8, 2),
                substr($seconddate, 10, 2),
                substr($seconddate, 12, 2),
                substr($seconddate, 4, 2),
                substr($seconddate, 6, 2),
                substr($seconddate, 0, 4) );

    return $b - $a;
}

$a = "20120101151420";
$b = "20120101151306";

echo DateDiffDigit($a, $b);

retours -74 secondes); - il suffit de retourner soit l'entrée / sortie pour obtenir une valeur positive

Il me semble que les chiffres sont au format aaaammjjHHMMSS, donc vous devez les convertir en unixstamps. J'utiliser la fonction preg_replace pour convertir au format de chaîne utilisable pour la fonction strtotime:

$time1 = strtotime(preg_replace('(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})', '\\1-\\2-\\3 \\4:\\5:\\6', $val1));
$time2 = strtotime(preg_replace('(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})', '\\1-\\2-\\3 \\4:\\5:\\6', $val2));

$diff = $time2 - $time1;

Il vaut mieux écrire une fonction pour convertir si vous l'utilisez plusieurs fois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top