Laravel验证Moment.js日期

Nee*_*eel 1 date-range laravel angularjs laravel-5 laravel-validation

我正在尝试验证Laravel中从Angular Javascript发送数据的日期范围。

前端Angular使用moment.js发送日期范围,如下所示:

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

            var apiDateRange = {
                'startDate': startDate.format(),
                'endDate': endDate.format()
            };
Run Code Online (Sandbox Code Playgroud)

在控制台中,我可以看到日期是这样发布的:

endDate     2015-09-14T15:39:53+05:30
startDate   2015-08-16T15:39:53+05:30
Run Code Online (Sandbox Code Playgroud)

我正在尝试验证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',
]);
Run Code Online (Sandbox Code Playgroud)

我阅读了php日期文档,date_format为此感到困惑。有人可以在这里帮我吗?

K.T*_*ess 5

您不能像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)
};
Run Code Online (Sandbox Code Playgroud)

另外,我认为最好进行验证 'startDate' => 'required|date'