Nice programing

HH : MM : SS 형식의 시간을 초로 만 변환 하시겠습니까?

nicepro 2020. 11. 12. 20:14
반응형

HH : MM : SS 형식의 시간을 초로 만 변환 하시겠습니까?


형식의 시간을 HH:MM:SS평평한 초 숫자로 바꾸는 방법은 무엇입니까?

PS 시간은 때때로 형식 일 수 있습니다 MM:SS.


explode아무것도 필요 없음 :

$str_time = "23:12:95";

$str_time = preg_replace("/^([\d]{1,2})\:([\d]{2})$/", "00:$1:$2", $str_time);

sscanf($str_time, "%d:%d:%d", $hours, $minutes, $seconds);

$time_seconds = $hours * 3600 + $minutes * 60 + $seconds;

정규식을 사용하지 않으려면 :

$str_time = "2:50";

sscanf($str_time, "%d:%d:%d", $hours, $minutes, $seconds);

$time_seconds = isset($hours) ? $hours * 3600 + $minutes * 60 + $seconds : $minutes * 60 + $seconds;

내가 생각하는 가장 쉬운 방법은 사용하는 것입니다 strtotime()기능 :

$time = '21:30:10';
$seconds = strtotime("1970-01-01 $time UTC");
echo $seconds;

// same with objects (for php5.3+)
$time = '21:30:10';
$dt = new DateTime("1970-01-01 $time", new DateTimeZone('UTC'));
$seconds = (int)$dt->getTimestamp();
echo $seconds;

demo


date_parse()날짜 및 시간 구문 분석에도 함수를 사용할 수 있습니다.

$time = '21:30:10';
$parsed = date_parse($time);
$seconds = $parsed['hour'] * 3600 + $parsed['minute'] * 60 + $parsed['second'];

demo


파서 와 같은 형식을 입력 할 때 형식 아니라고 가정 하기 때문에 형식 MM:SS구문 분석 strtotime()하거나 date_parse()실패 할 경우 ( date_parse()에서 사용됨 ) . 나는 형식을 확인 제안하고 붙일 것입니다 만있는 경우 .strtotime()DateTimexx:yyHH:MMMM:SS00:MM:SS

demo strtotime() demo date_parse()


시간이 24 시간 이상인 경우 다음 기능을 사용할 수 있습니다 (작동 MM:SSHH:MM:SS형식 지정).

function TimeToSec($time) {
    $sec = 0;
    foreach (array_reverse(explode(':', $time)) as $k => $v) $sec += pow(60, $k) * $v;
    return $sec;
}

demo


의사 코드에서 :

split it by colon
seconds = 3600 * HH + 60 * MM + SS

이 시도:

$time = "21:30:10";
$timeArr = array_reverse(explode(":", $time));
$seconds = 0;
foreach ($timeArr as $key => $value)
{
    if ($key > 2) break;
    $seconds += pow(60, $key) * $value;
}
echo $seconds;

    $time = 00:06:00;
    $timeInSeconds = strtotime($time) - strtotime('TODAY');

strtotime함수를 사용하여 에서 초 수를 반환 할 수 있습니다 today 00:00:00.

$seconds= strtotime($time) - strtotime('00:00:00');

단순한

function timeToSeconds($time)
{
     $timeExploded = explode(':', $time);
     if (isset($timeExploded[2])) {
         return $timeExploded[0] * 3600 + $timeExploded[1] * 60 + $timeExploded[2];
     }
     return $timeExploded[0] * 3600 + $timeExploded[1] * 60;
}

<?php
$time    = '21:32:32';
$seconds = 0;
$parts   = explode(':', $time);

if (count($parts) > 2) {
    $seconds += $parts[0] * 3600;
}
$seconds += $parts[1] * 60;
$seconds += $parts[2];

참고 URL : https://stackoverflow.com/questions/4834202/convert-time-in-hhmmss-format-to-seconds-only

반응형