복붙노트

변환 날짜 형식 yyyy-mm-dd => dd-mm-yyyy [duplicate]

PHP

변환 날짜 형식 yyyy-mm-dd => dd-mm-yyyy [duplicate]

날짜를 yyyy-mm-dd에서 dd-mm-yyyy (SQL에서는 아님)로 변환하려고합니다. 그러나 나는 날짜 함수가 타임 스탬프를 요구하는 방법을 모르며이 문자열에서 타임 스탬프를 얻을 수 없다.

이것이 어떻게 가능한지?

해결법

  1. ==============================

    1.

    strtotime () 및 date ()를 사용하십시오.

    $originalDate = "2010-03-21";
    $newDate = date("d-m-Y", strtotime($originalDate));
    

    (PHP 사이트의 strtotime 및 date 문서를 참조하십시오).

    편집 : 이것은 원래 질문에 대한 빠른 해결책이라는 것을 유의하십시오. 보다 광범위한 변환을 위해서는 DateTime 클래스를 사용하여 구문을 분석하고 형식을 지정해야합니다.

  2. ==============================

    2.

    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');
    

    먼저 $ date String이있는 형식을 지정하고 $ new Date String을 원하는 형식으로 지정합니다.

    또는 소스 형식이 항상 "Y-m-d"(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
    ?>
    
  3. ==============================

    3.

    implode('-', array_reverse(explode('-', $date)));
    

    날짜 변환 오버 헤드 없이는 별 문제가 없을 것입니다.

  4. ==============================

    4.

    $newDate = preg_replace("/(\d+)\D+(\d+)\D+(\d+)/","$3-$2-$1",$originalDate);
    

    이 코드는 모든 날짜 형식에 적용됩니다.

    이전 날짜 형식으로 인해 $ 3- $ 1- $ 2와 같은 대체 변수의 순서를 변경할 수 있습니다.

  5. ==============================

    5.

    $timestamp = strtotime(your date variable); 
    $new_date = date('d-m-Y', $timestamp);
    

    이상:

    여기를 클릭하십시오.

    또는 더 짧은 :

    $new_date = date('d-m-Y', strtotime(your date variable));
    
  6. ==============================

    6.

    또한 또 다른 확실하지 않은 가능성 :

    $oldDate = '2010-03-20'
    $arr = explode('-', $oldDate);
    $newDate = $arr[2].'-'.$arr[1].'-'.$arr[0];
    

    내가 그것을 사용할 지 아직 모르겠다. :)

  7. ==============================

    7.

    가장 많이 투표 된 답변은 실제로 잘못되었습니다!

    PHP strtotime Manual은 "이 함수는 영어 날짜 형식을 포함하는 문자열을받을 것으로 기대합니다."라고 말합니다. 실제로 의미하는 것은 "m-d-Y"또는 "m / d / Y"와 같은 미국 미국 날짜 형식을 예상한다는 것입니다.

    즉, "Y-m-d"로 제공된 날짜가 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
    
  8. ==============================

    8.

    이것을 구현하는 두 가지 방법

    1)
    
    $date = strtotime(date); 
    $new_date = date('d-m-Y', $date);
    

    2)

    $cls_date = new DateTime($date);
    echo $cls_date->format('d-m-Y'); 
    
  9. ==============================

    9.

    strftime 함수를 사용해보십시오. strftime과 같은 것 ($ time, '% d % m % Y');

  10. ==============================

    10.

    이 기능을 사용하여 모든 형식을 모든 형식으로 변환하십시오.

    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);
    }
    
  11. ==============================

    11.

    mktime ()을 사용하여 내일의 날짜를 생성하고 형식을 dd / mm / yyyy 형식으로 변경 한 다음 echo를 사용하여 인쇄하는 PHP 코드가 있습니다.

    $tomorrow = mktime(0, 0, 0, date("m"), date("d") + 1, date("Y"));
    echo date("d", $tomorrow) . "/" . date("m", $tomorrow). "/" . date("Y", $tomorrow);
    
  12. ==============================

    12.

    date('m/d/Y h:i:s a',strtotime($val['EventDateTime']));
    
  13. from https://stackoverflow.com/questions/2487921/convert-date-format-yyyy-mm-dd-dd-mm-yyyy by cc-by-sa and MIT lisence