문자열을 Date 및 DateTime으로 변환
PHP문자열을 Date 및 DateTime으로 변환
mm-dd-YYYY (예 : 10-16-2003) 형식의 PHP 문자열이있는 경우이를 YYYY-mm-dd 형식으로 Date 및 DateTime으로 올바르게 변환하는 방법은 무엇입니까? 내가 Date와 DateTime을 모두 묻는 유일한 이유는 하나의 자리에서 하나, 다른 지점에서 다른 하나를 필요로하기 때문입니다.
해결법
-
==============================
1.첫 번째 날짜에 strtotime ()을 사용하고 date ( 'Y-m-d')를 사용하여 다시 변환하십시오.
첫 번째 날짜에 strtotime ()을 사용하고 date ( 'Y-m-d')를 사용하여 다시 변환하십시오.
$time = strtotime('10/16/2003'); $newformat = date('Y-m-d',$time); echo $newformat; // 2003-10-16
strtotime () 함수에서 슬래시 (/)와 하이픈 (-)을 사용하는 것의 차이점을주의하십시오. php.net에서 인용하기 :
-
==============================
2.m / d / Y 및 m-d-Y 형식은 신중해야합니다. PHP는 /를 m / d / Y로 간주하고 -는 d-m-Y를 의미하는 것으로 간주합니다. 이 경우 입력 형식을 명시 적으로 설명합니다.
m / d / Y 및 m-d-Y 형식은 신중해야합니다. PHP는 /를 m / d / Y로 간주하고 -는 d-m-Y를 의미하는 것으로 간주합니다. 이 경우 입력 형식을 명시 적으로 설명합니다.
$ymd = DateTime::createFromFormat('m-d-Y', '10-16-2003')->format('Y-m-d');
그런 식으로 당신은 어떤 해석의 변덕에 처하지 않습니다.
-
==============================
3.날짜를 파싱하려면 다음을 사용해야합니다. DateTime :: createFromFormat ();
날짜를 파싱하려면 다음을 사용해야합니다. DateTime :: createFromFormat ();
전의:
$dateDE = "16/10/2013"; $dateUS = \DateTime::createFromFormat("d.m.Y", $dateDE)->format("m/d/Y");
그러나 다음과 같이 충돌 할 수 있으므로주의하십시오.
PHP Fatal error: Call to a member function format() on a non-object
실제로 포맷이 제대로되었는지 확인해야합니다.
$dateDE = "16/10/2013"; $dateObj = \DateTime::createFromFormat("d.m.Y", $dateDE); if (!$dateObj) { throw new \UnexpectedValueException("Could not parse the date: $date"); } $dateUS = $dateObj->format("m/d/Y");
이제 충돌하는 대신 예외를 잡아 내고 전파 할 수 있습니다.
$ dateDE 형식이 잘못되었습니다. "16.10.2013"이어야합니다;
-
==============================
4.
$d = new DateTime('10-16-2003'); $timestamp = $d->getTimestamp(); // Unix timestamp $formatted_date = $d->format('Y-m-d'); // 2003-10-16
편집 : DateTimeZone을 DateTime () 생성자에 전달하여 서버 기본 시간대가 아닌 원하는 시간대의 날짜를 만들 수 있습니다.
-
==============================
5.PHP 5.2 이상을 사용하는 경우 위에 언급 한대로 DateTime을 사용하십시오. 이 기사가 도움이 될 것입니다.
PHP 5.2 이상을 사용하는 경우 위에 언급 한대로 DateTime을 사용하십시오. 이 기사가 도움이 될 것입니다.
-
==============================
6.첫 번째 날짜
첫 번째 날짜
$_firstDate = date("m-d-Y", strtotime($_yourDateString));
새 날짜
$_newDate = date("Y-m-d",strtotime($_yourDateString));
-
==============================
7.형식이 dd-mm-yyyy 인 경우 PHP에서 예상대로 작동하지 않습니다. PHP 문서에는 아래 지침이 있습니다.
형식이 dd-mm-yyyy 인 경우 PHP에서 예상대로 작동하지 않습니다. PHP 문서에는 아래 지침이 있습니다.
따라서 원하는대로 사용할 수 없습니다. 이 때 dd / mm / yyyy 형식을 사용하려고하면 FALSE가 제거됩니다. 다음과 같이 조정할 수 있습니다.
$date = "23/02/2013"; $timestamp = strtotime($date); if ($timestamp === FALSE) { $timestamp = strtotime(str_replace('/', '-', $date)); } echo $timestamp; // prints 1361577600
from https://stackoverflow.com/questions/6238992/converting-string-to-date-and-datetime by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
PHP에서 거대한 XML 파일 구문 분석하기 (0) | 2018.09.14 |
---|---|
여러 키로 다차원 배열 정렬 (0) | 2018.09.14 |
PHP로 작성된 코드의 속도는 어떻게 측정 할 수 있습니까? (0) | 2018.09.14 |
PHP를 사용하여 CSRF 토큰을 올바르게 추가하는 방법 (0) | 2018.09.14 |
PHP에서 echo, print 및 print_r의 차이점은 무엇입니까? (0) | 2018.09.14 |