конвертировать 14 цифр в дату времени php - PullRequest
0 голосов
/ 13 января 2012

У меня есть два значения в php:

value: 20120101151420
20120101151306

что я ищу, чтобы выяснить разницу во времени в секундах из обоих значений. (Если мне нужно преобразоватьих формат времени .how)

Ответы [ 3 ]

0 голосов
/ 13 января 2012
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);

возвращает -74 секунды;) - просто переверните вход / выход, чтобы получить положительное значение

0 голосов
/ 13 января 2012

Мне кажется, что числа имеют формат ГГГГммдДЧЧММСС, поэтому вам нужно преобразовать их в unixstamps.Я бы использовал функцию preg_replace для преобразования в строковый формат, пригодный для функции 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;

Намного лучше написать функцию для преобразования, если вы используете ее несколько раз.

0 голосов
/ 13 января 2012
echo strtotime("20120101151420")- strtotime("20120101151306");

Выход

74
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...