-1

私は php に2つの値を持っています:

値: 20120101151420
20120101151306

両方の値から秒単位で時間差を把握しようとしているもの.(それらを時間形式に変換する必要があるはずです.how)

4

3 に答える 3

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

出力

74
于 2012-01-13T11:42:13.757 に答える
0
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秒を返します;) - 入力/出力を反転して正の値を取得するだけです

于 2012-01-13T11:43:54.787 に答える
0

数値は YYYYmmddHHMMSS 形式であるように思われるため、それらを 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;

何度も使用する場合は、変換する関数を作成する方がはるかに優れています。

于 2012-01-13T11:53:48.987 に答える