1

Я пытаюсь проверить диапазон дат в Laravel, где данные отправляются с моего Углового Javascript.Laravel Validate Moment.js Дата

Frontend Угловая посылает диапазон дат, используя 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 

Я пытаюсь проверить дата в Ларавеле. Из чтения документов я вижу, что для этого мне нужно использовать 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 для этого. Может кто-то любезно помочь мне здесь, пожалуйста?

ответ

3

Разве вы не можете передать в качестве строки даты, как 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'

+0

я могу попробуйте изменить строку даты. Но после проверки, laravel будет использовать эту дату в красноречиве, чтобы получить строки для этого диапазона дат. На данный момент запрос работает в текущем формате даты. Я попробую и посмотрю, работает ли он в формате строки даты, и не нужно снова его анализировать с использованием Carbon при использовании в запросе типа 'where ('created_at', '> =', $ startDate)'. Спасибо за ваш вклад. :) – Neel

+0

yes no prob :), если вы используете столбец datetime, тогда он определенно будет работать :) –

+0

sweet. Это здорово. Спасибо @ K.Toress – Neel

0

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

$validator = Validator::make($postData, [ 
       'startDate' => 'date|required', 
       'endDate' => 'date|required' 
      ]); 
Смежные вопросы