반응형
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;
date_parse()날짜 및 시간 구문 분석에도 함수를 사용할 수 있습니다.
$time = '21:30:10';
$parsed = date_parse($time);
$seconds = $parsed['hour'] * 3600 + $parsed['minute'] * 60 + $parsed['second'];
파서 와 같은 형식을 입력 할 때 형식 이 아니라고 가정 하기 때문에 형식 MM:SS을 구문 분석 strtotime()하거나 date_parse()실패 할 경우 ( 및 date_parse()에서 사용됨 ) . 나는 형식을 확인 제안하고 붙일 것입니다 만있는 경우 .strtotime()DateTimexx:yyHH:MMMM:SS00:MM:SS
demo strtotime() demo date_parse()
시간이 24 시간 이상인 경우 다음 기능을 사용할 수 있습니다 (작동 MM:SS및 HH:MM:SS형식 지정).
function TimeToSec($time) {
$sec = 0;
foreach (array_reverse(explode(':', $time)) as $k => $v) $sec += pow(60, $k) * $v;
return $sec;
}
의사 코드에서 :
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
반응형
'Nice programing' 카테고리의 다른 글
| CMake가 C ++로 링커 언어를 결정할 수 없습니다. (0) | 2020.11.12 |
|---|---|
| Maven의 외부 라이브러리가있는 Android Studio에서 네임 스페이스 '앱'이 바인딩되지 않았습니다. (0) | 2020.11.12 |
| Spring이 존재하는 경우 Bean xml 구성 파일을 찾을 수 없습니다. (0) | 2020.11.12 |
| Android Studio 인수에 대한 runProguard () 메서드를 찾을 수 없습니까? (0) | 2020.11.12 |
| Spark의 CSV 파일에서 헤더를 건너 뛰려면 어떻게하나요? (0) | 2020.11.12 |