jQuery UI datepicker: Отображение 1969 года, хотя я использую strtotime


У меня есть приложение для бронирования номеров на PHP+JQUERY. Я использую виджет datepicker для выбора даты, и я столкнулся с проблемой. Я пытаюсь преобразовать выбранную дату (в формате дд/мм/гггг) в формат ГГГГ-мм-дд, чтобы ВСТАВИТЬ ее в свою базу данных. Когда я выбираю первые даты, они хорошо преобразуются, но когда я выбираю другие даты, я вижу дату 1969-12-31. Вот мой код JQUERY:

    $(function() {
    $( "#datepicker" ).datepicker({ 
        showOn: "button",
        buttonImage: "images/calendar.gif",
        buttonImageOnly: true,          
        minDate: 0, 
        maxDate: "+3W", 
        dateFormat: "dd/mm/yy",
        beforeShowDay: function (date) {
        var day = date.getDay();
        return [(day == 0 || day == 1 || day == 2 || day == 3 || day == 4), ''];
        },
        onSelect: function(dateText) {
            $("#registration").load("room.php #registration", {selectedDate: dateText}, function() { 
                $( "input:submit, a, button", ".registration" ).button();
                $( "a", ".registration" ).click(function() { return false; });
            });

        }

    });
    });  

А затем я повторяю результат для тестирования:

    <?php if(isset($_POST['selectedDate']))
           { 
              $selectedDate=$_POST['selectedDate']; 
              echo date('Y-m-d',strtotime((string)$selectedDate)); 
           } 
    ?>

Вот изображение в моем приложении: http://oi43.tinypic.com/29tv2c.jpg

1: enter image description here

Author: Guru, 2012-04-08

2 answers

В конце концов я решил проблему. вместо того, чтобы конвертировать его в PHP, я преобразовал его в JS:

        onSelect: function(dateText) {

        //Converting the date format by spliting the date.
        var dt= dateText;
        var arrDt = dt.split('/');
        var newDt = arrDt[2] + "-" + arrDt[1] + "-" + arrDt[0];

        //Loading the rooms div acoording to the sent selected date in JSON format  
            $("#registration").load("room.php #registration", {selectedDate: newDt}, function() { 
                $( "input:submit, a, button", ".registration" ).button();
                $( "a", ".registration" ).click(function() { return false; });
            });

        }

Но я все еще не знаю, что вызвало проблему с преобразованием функции date()!

 1
Author: Chopinist, 2012-04-08 19:48:14

Какой тип выбранной даты вы храните в MySQL? С типом данных ДАТЫ вам просто нужно передать формат "ГГГГ-ММ-ДД", чтобы ВСТАВИТЬ инструкцию.

Смотрите этот вопрос для получения более подробной информации

А также это http://dev.mysql.com/doc/refman/5.5/en/datetime.html

 0
Author: hungneox, 2017-05-23 10:30:22