2017-12-20 7 views
-1

두 개의 24 시간을 개별 12 시간으로 분할/변환하려고하지만 PHP가 출력에 12 분 또는 1 분 중 하나를 추가하는 것 같습니다. 시간대 및 시스템 시간 수정을 시도한 후에 원인을 파악하지 못합니다. 나에게 교육 시키길 바래?PHP DateTime :: createFromFormat 출력 형식이 g 일 때 12 분 추가 : ma

입력 :

<?php $timeSlot = ["10:00","22:00"]; 
    echo DateTime::createFromFormat('H:i',$timeSlot[0])->format('H:i'); 
    echo " - "; 
    echo DateTime::createFromFormat('H:i',$timeSlot[1])->format('H:i'); 
    echo " Fine.<br>"; 
    echo DateTime::createFromFormat('H:i',$timeSlot[0])->format('g:ma'); 
    echo " - "; 
    echo DateTime::createFromFormat('H:i',$timeSlot[1],new DateTimeZone('Australia/Sydney'))->format('g:ma'); 
    echo " Why 12 extra minutes?<br>"; 
    echo DateTime::createFromFormat('!H:i',$timeSlot[0])->format('g:ma'); 
    echo " - "; 
    echo DateTime::createFromFormat('!H:i',$timeSlot[1],new DateTimeZone('Australia/Sydney'))->format('g:ma'); 
    echo " Why one extra minute?"; ?> 

출력 :

10:00 - 22:00 Fine. 
10:12am - 10:12pm Why 12 extra minutes? 
10:01am - 10:01pm Why one extra minute? 
+0

남자, 그 트릭 질문을했다 :

여기에 테이블을 참조하십시오. 우리를 속일려고 했습니까, 아니면 당신에게 바보짓을하는 코드를 주었습니까? ;) –

+0

네, 이것은 바보 같은 질문이었습니다. 죄송합니다. –

답변

3

당신은 받고 있지 않습니다 여분 분. 그 달의 번호가 표시됩니다 (12 월의 경우 12). 당신은 당신이 설정하는 !H:i을했을 때 g:ia

에 형식을 변경, 월, 일, 년 1 월 1 일 1970 년은 그러므로 당신이 그 설정 월의 01을보고있는 것 유닉스 시대에. http://php.net/manual/en/function.date.php

관련 문제