Сценарий календаря устанавливает неправильные даты (день минус один) - PullRequest
0 голосов
/ 23 мая 2011

Я использую Calendar Script Джейсона Муна , чтобы позволить пользователям устанавливать дату события.В то время как это работает отлично для года и месяца, у меня возникают проблемы с установкой правильного дня.Он последовательно устанавливает дату события на один день до того, что выбрал пользователь;это происходит, даже если это означает возвращение в предыдущий месяц (1 августа становится 31 июля).Я не могу понять, почему это происходит или что это делает!

Код на стороне клиента:

<script>

DateInput ('publishingDate', правда, "ГГГГ-ММ-ДД", <? php echo $ results ['article'] -> publishingDate? "'" .date ("Ymd", $ results [' article '] -> publishingDate)."'": ""?>);

</script>

, в то время как единственный фрагмент серверного кода, который я могу себе представить, вызывает эту ошибку:

// Parse and store publication date
if ( isset( $params['publicationDate'] ) ) {
        $publicationDate = explode ( '-', $params['publicationDate'] );
        if ( count( $publicationDate ) == 3 ) {
            list ($y, $m, $d) = $publicationDate;
            $this->publicationDate = mktime(0, 0, 0, $m, $d, $y);
        }
    }

Кто-нибудь знает, что может быть причиной этого?Возможно, это связано с часовым поясом, который я установил в моем конфигурационном файле (Америка / Торонто)?

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Попробуйте установить время в mktime на полдень или около того вместо 00:00:00 - и вам все равно следует явно объявить часовой пояс, что является хорошей практикой. Если это будет один день, вы определенно можете сделать $ d + 1 в выражении mktime в соответствии с предложением @diEcho (но вы сказали, что дата вышла, а не месяц, и я верю, что дата индексируется 1 не 0 - но если это постоянно неправильно, вы можете сделать это постоянно исправленным).

0 голосов
/ 23 мая 2011

это может быть проблема month, если это так, то решение ниже:

Значение, возвращаемое getMonth, представляет собой целое число от 0 до 11. 0 соответствует январю, 1 - февралю, ии т. д.

, чтобы получить текущий месяц, вам всегда нужно написать +1

вот так

var today = new Date(); 
var dd = today.getDate(); 
var mm = today.getMonth()+1;//January is 0!

Ссылка

еще один

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...