Chuyển đổi date format từ php qua javascript

Cập nhật: Lượt xem: 789 [ PHP ]

Function chuyển đổi date format từ php qua javascript

Chuyển đổi date format từ php qua javascript

Lập trình web với php thì khó tránh khỏi trường hợp làm việc với date trên cả php và javascript. Mình đã gặp một trường hợp, cần phải lấy date từ MySQL, xuất ra front-end cho javascript để hiển thị và làm giá trị default cho datepicker, sau đó user change date trong datepicker và submit lại vào backend. Yêu cầu là phải giữ đúng format của ngày.

Nếu User muốn hiển thị ngày là “23 JUNE, 2016”. Thì trong mysql vẫn phải lưu là 2016-06-23. Nhưng khi php xuất ra date cho javascript thì phải xuất về “23 JUNE, 2016”, và khi datepicker post date về backend thì cũng phải là “23 JUNE, 2016”. Đòi hỏi javascript và php phải hiểu được date format của nhau. Trớ trêu thay, date format của javascript và php lại không tương đồng với nhau. Trong ví dụ này, format của php là “j F, Y” nhưng trong javascript thì sẽ là “d MM, yy”.

Vì vậy ta cần một bước để translate date format của php về javascript. Sau đó dùng dateformat này để truyền vào làm option cho datepicker. Đó là giải pháp và dưới đây là code :

function we_date_format($sourceFormat) {
    $replace     = array(
        'd' => 'dd',
        'D' => 'D',
        'j' => 'd',
        'l' => 'DD',
        'N' => '',
        'S' => '',
        'w' => '',
        'z' => 'o',
        // Week
        'W' => '',
        // Month
        'F' => 'MM',
        'm' => 'mm',
        'M' => 'M',
        'n' => 'm',
        't' => '',
        // Year
        'L' => '',
        'o' => '',
        'Y' => 'yy',
        'y' => 'y',
        // Time
        'a' => '',
        'A' => '',
        'B' => '',
        'g' => '',
        'G' => '',
        'h' => '',
        'H' => '',
        'i' => '',
        's' => '',
        'u' => ''
    );
    $date_format = str_replace( array_keys( $replace ), array_values( $replace ),$sourceFormat);
    $date_format = apply_filters( 'we_date_format', $date_format ); return $date_format;
}

Tác giả: Nguyễn Văn Được