PHP에서 날짜 형식 변환
날짜를 yyyy-mm-dd
에서 dd-mm-yyyy
(SQL이 아닌) 로 변환하려고합니다 . 그러나 날짜 함수에 타임 스탬프가 어떻게 필요한지 알지 못하고이 문자열에서 타임 스탬프를 얻을 수 없습니다.
이것이 어떻게 가능한지?
사용 strtotime()
및 date()
:
$originalDate = "2010-03-21";
$newDate = date("d-m-Y", strtotime($originalDate));
( PHP 사이트 의 strtotime 및 날짜 문서를 참조하십시오 .)
이것은 원래 질문에 대한 빠른 해결책이었습니다. 더 광범위한 변환을 위해서는 DateTime
클래스를 사용하여 구문 분석하고 형식을 지정해야합니다 :-)
strtotime 변환을 피하려면 (예 : strtotime이 입력을 구문 분석 할 수없는 경우) 사용할 수 있습니다.
$myDateTime = DateTime::createFromFormat('Y-m-d', $dateString);
$newDateString = $myDateTime->format('d-m-Y');
또는 동등하게 :
$newDateString = date_format(date_create_from_format('Y-m-d', $dateString), 'd-m-Y');
먼저 $ dateString의 형식을 지정합니다. 그런 다음 $ newDateString을 원하는 형식으로 지정합니다.
또는 소스 형식이 항상 "Ymd"(yyyy-mm-dd)이면 DateTime을 사용하십시오 .
<?php
$source = '2012-07-31';
$date = new DateTime($source);
echo $date->format('d.m.Y'); // 31.07.2012
echo $date->format('d-m-Y'); // 31-07-2012
?>
사용하다:
implode('-', array_reverse(explode('-', $date)));
날짜 변환 오버 헤드가 없으면 크게 중요하지 않습니다.
$newDate = preg_replace("/(\d+)\D+(\d+)\D+(\d+)/","$3-$2-$1",$originalDate);
이 코드는 모든 날짜 형식에 적용됩니다.
이전 날짜 형식으로 인해 $ 3- $ 1- $ 2와 같은 대체 변수의 순서를 변경할 수 있습니다.
또 다른 모호한 가능성 :
$oldDate = '2010-03-20'
$arr = explode('-', $oldDate);
$newDate = $arr[2].'-'.$arr[1].'-'.$arr[0];
나는 그것을 사용할지 모르겠지만 여전히 :)
$timestamp = strtotime(your date variable);
$new_date = date('d-m-Y', $timestamp);
자세한 내용은의 설명서를strtotime
참조하십시오 .
또는 더 짧습니다.
$new_date = date('d-m-Y', strtotime(your date variable));
참고 :이 게시물의 답변이 때로는 투표를 받기 때문에 사람들에게 더 이상 투표하지 말라고 친절하게 요청했습니다. 내 대답은 고대이며 기술적으로 정확하지 않으며 여기에 몇 가지 더 나은 접근 방식이 있습니다. 역사적인 목적으로 만 여기에 보관하고 있습니다.
설명서에서 strtotime 함수에 대한 설명이 잘못되었지만 @rjmunro는 그의 의견에서이 문제를 올바르게 해결했습니다. ISO 형식 날짜는 "YYYY-MM-DD"입니다.
또한 Date_Converter 함수가 여전히 작동하더라도 아래에 부정확 한 진술이있을 수 있음을 경고하고 싶습니다. 무시하십시오.
가장 투표 된 답변이 실제로 잘못되었습니다!
는 PHP strtotime으로 매뉴얼은 여기 "함수 예상하는이 영어 날짜 형식을 포함하는 문자열을 제공 할"고 주장한다. 실제로 의미하는 것은 "mdY"또는 "m / d / Y"와 같은 미국식 미국 날짜 형식을 예상한다는 것입니다.
이는 "Ymd"로 제공된 날짜가에 의해 잘못 해석 될 수 있음을 의미합니다 strtotime
. 예상 형식으로 날짜를 제공해야합니다.
여러 형식으로 날짜를 반환하는 작은 함수를 작성했습니다. 마음대로 사용하고 수정하십시오. 누군가 그것을 수업으로 바꾸면 공유 할 수 있다면 기쁠 것입니다.
function Date_Converter($date, $locale = "br") {
# Exception
if (is_null($date))
$date = date("m/d/Y H:i:s");
# Let's go ahead and get a string date in case we've
# been given a Unix Time Stamp
if ($locale == "unix")
$date = date("m/d/Y H:i:s", $date);
# Separate Date from Time
$date = explode(" ", $date);
if ($locale == "br") {
# Separate d/m/Y from Date
$date[0] = explode("/", $date[0]);
# Rearrange Date into m/d/Y
$date[0] = $date[0][1] . "/" . $date[0][0] . "/" . $date[0][2];
}
# Return date in all formats
# US
$Return["datetime"]["us"] = implode(" ", $date);
$Return["date"]["us"] = $date[0];
# Universal
$Return["time"] = $date[1];
$Return["unix_datetime"] = strtotime($Return["datetime"]["us"]);
$Return["unix_date"] = strtotime($Return["date"]["us"]);
$Return["getdate"] = getdate($Return["unix_datetime"]);
# BR
$Return["datetime"]["br"] = date("d/m/Y H:i:s", $Return["unix_datetime"]);
$Return["date"]["br"] = date("d/m/Y", $Return["unix_date"]);
# Return
return $Return;
} # End Function
이를 구현하는 두 가지 방법이 있습니다.
1.
$date = strtotime(date);
$new_date = date('d-m-Y', $date);
2.
$cls_date = new DateTime($date);
echo $cls_date->format('d-m-Y');
당신은 strftime()
기능을 시도 할 수 있습니다 . 간단한 예 :strftime($time, '%d %m %Y');
이 기능을 사용하여 모든 형식에서 모든 형식으로 변환
function reformatDate($date, $from_format = 'd/m/Y', $to_format = 'Y-m-d') {
$date_aux = date_create_from_format($from_format, $date);
return date_format($date_aux,$to_format);
}
아래는 PHP 코드를 사용하여 내일 날짜를 생성 mktime()
하고 형식을 dd / mm / yyyy 형식 으로 변경 한 다음를 사용하여 인쇄하는 PHP 코드 echo
입니다.
$tomorrow = mktime(0, 0, 0, date("m"), date("d") + 1, date("Y"));
echo date("d", $tomorrow) . "/" . date("m", $tomorrow). "/" . date("Y", $tomorrow);
date('m/d/Y h:i:s a',strtotime($val['EventDateTime']));
이 특정 변환을 위해 형식 문자열을 사용할 수도 있습니다.
$new = vsprintf('%3$s-%2$s-%1$s', explode('-', $old));
분명히 이것은 다른 많은 날짜 형식 변환에는 작동하지 않지만이 경우 하위 문자열을 다시 정렬하기 때문에 가능한 또 다른 방법입니다.
간단한 방법 사용 strtotime()
및 date()
:
$original_dateTime = "2019-05-11 17:02:07"; #This may be database datetime
$newDate = date("d-m-Y", strtotime($original_dateTime));
시간과 함께
$newDate = date("d-m-Y h:i:s a", strtotime($original_dateTime));
date () 및 strtotime ()을 사용하여 형식을 변경할 수 있습니다.
$ date = '9/18/2019';
에코 날짜 ( 'dm-y', strtotime ($ date));
결과:
18-09-19
(dmy)를 변경하여 형식을 변경할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/2487921/convert-a-date-format-in-php
'Programming' 카테고리의 다른 글
Windows의 명령 줄에서 빈 파일을 만드는 방법은 무엇입니까? (0) | 2020.02.15 |
---|---|
이 인증서에는 잘못된 발급자 Apple Push Services가 있습니다. (0) | 2020.02.15 |
변수가 존재하는지 JavaScript 확인 (정의 / 초기화) (0) | 2020.02.15 |
PHP에서 정적 코드 분석을 수행하는 방법은 무엇입니까? (0) | 2020.02.15 |
Facebook 콜백이 '# _ = _'을 반환 URL에 추가합니다. (0) | 2020.02.15 |