Laravel Validate Moment.js Дата

Я пытаюсь проверить диапазон дат в Laravel, куда отправляются данные из моего Angular Javascript.

Frontend Angular отправляет диапазон дат с помощью moment.js следующим образом:

            var endDate = moment();
            var startDate = moment().subtract(29, 'days');

            var apiDateRange = {
                'startDate': startDate.format(),
                'endDate': endDate.format()
            };

В консоли я вижу, что дата опубликована так:

endDate     2015-09-14T15:39:53+05:30
startDate   2015-08-16T15:39:53+05:30

Я пытаюсь подтвердить дату в Laravel. Читая документы, я вижу, что мне нужно использовать date_format за это. Но я неправильно понимаю формат. Это то, что я пробовал до сих пор и, очевидно, ошибаюсь:

$validator = Validator::make($postData, [
   'startDate' => 'date_format:"Y-m-d H:i:s.u"|required'
   'endDate' => 'date_format:"Y-m-d H:i:s.u"|required'
]);


// AND

$validator = Validator::make($postData, [
   'startDate' => 'date_format:"Y-m-d\TH:i:s"|required',
   'endDate' => 'date_format:"Y-m-d\TH:i:s"|required',
]);

Я прочитал документ php date, и я запутался, собирая вместе date_format за это. Может ли кто-нибудь любезно помочь мне здесь, пожалуйста?

2 ответа

Решение

Не могли бы вы передать в качестве строки даты, как 2015-06-10 01:10:25 при форматировании

var format_to = 'YYYY-MM-DD HH:mm:ss';

var apiDateRange = {
   'startDate': startDate.format(format_to),
   'endDate': endDate..format(format_to)
};

Плюс я думаю, что лучше иметь такую ​​проверку, как 'startDate' => 'required|date'

Извините, что отвечаю на мой вопрос. Вскоре после публикации моего вопроса я узнал, что с помощью date проверка работает вместо использования date_format, Итак, вот что я имею сейчас:

$validator = Validator::make($postData, [
               'startDate' => 'date|required',
               'endDate' => 'date|required'
           ]);
Другие вопросы по тегам