Jquery datepicker и php datetime не согласны? - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь сделать что-то, что, кажется, должно быть простым, но каким-то образом не будет правильно связываться.

Пользователь выбирает дату из jquery datepicker , гдеУ меня showWeek включено.

$(".datepicker").datepicker({
    showWeek: true,
    changeMonth: true,
    changeYear: true,
    dateFormat: 'yy-mm-dd'
});

Но, когда результирующая строка даты вводится в дату-время php, неделя не соответствует и находится на 1 неделю дальше.

$start_date = isset($_POST['startdate']) ? $_POST['startdate'] : "";
$start = new DateTime($start_date);
echo $start->format("W"); 

IE, 2018-10-02 показывает как 39-ю неделю в моем указателе даты, но эхо, показанное выше при чтении этой даты обратно в datetime и форматировании для недели, возвращает неделю 40.

Итак, насколько я могу судить, средство выбора даты jqueryи класс php datetime не договариваются о том, какие недели какие по умолчанию.

Есть ли способ согласовать это?

PHP date говорит, что он соответствует ISO-8601, Проверка онлайн подтверждает для меня, что php правильно, так как я могу исправить отображение DatePicker для правильного отображения

1 Ответ

0 голосов
/ 03 октября 2018

Хорошо, вот решение: согласно jquery ui вам нужно указать первый день, а в вашем коде вы его пропускаете:

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Show week of the year</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
  $( function() {
    $( "#datepicker" ).datepicker({
      showWeek: true,
      firstDay: 1,
      changeMonth: true,
      changeYear: true,
      dateFormat: 'yy-mm-dd'
    });
  } );
  </script>
</head>
<body>
 
<p>Date: <input type="text" id="datepicker"></p>
 
 
</body>

Просто добавьте firstDay: 1, и все работает, как вы ожидаете.

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