PHP DateTime无效的拍卖结束日期

时间:2017-10-01 13:12:35

标签: php laravel-5

我为产品编写了Laravel 5拍卖出价脚本。

如果我想创建新产品,我可以输入"结束日期"对于拍卖,但我总是得到这个错误:

  

"无效的结束日期"

我已经尝试了所有日期变体但没有一个有效。

我在ProductController中的拍卖结束日期代码:

if (validateDate($request->end_date)) {
          $end_date = DateTime::createFromFormat('Y-m-d\TH:i',$request->end_date);
          $now = date('Y-m-d\TH:i');
          $end_date1 =  date_format($end_date,'Y-m-d\TH:i');
          if ($end_date1 < $now) {
            session()->flash('errormessage','Invalid end date');
            return redirect()->back()->withInput();
          }

我以这种格式输入日期和时钟:

  

结束日期和时间

     

2017年10月22日\ 15:00

4 个答案:

答案 0 :(得分:1)

您格式中的\T表示您期待文字&#34; T&#34;而不是格式&#34; T&#34; (时区缩写)。因此,您需要输入日期为&#34; 2017-10-22T15:00&#34;

答案 1 :(得分:0)

我希望你使用的是Mysql

如果列类型为MatDialogModule,则必须为

datetime

如果列类型为2017-09-24 05:03:24 ,则必须为

date

如果您使用的是mysql,那么您的日期格式无效

答案 2 :(得分:0)

如果您已为此结束日期创建了迁移

$table->dateTime('end_date');

然后你需要从这种格式创建日期:

$end_date = DateTime::createFromFormat('Y-m-d H:i:s',$request->end_date);

这会给你

  

2017-10-22 15:00:00

如果您为结束日期创建了迁移,请执行以下操作:

$table->dateTimeTz('end_date');

然后使用此格式

$end_date = DateTime::createFromFormat('Y-m-dTH:i:s',$request->end_date);

这会给你这样的end_date

  

2017-10-22T15:00:00

答案 3 :(得分:0)

全心全意感谢您的帮助!

多数民众赞成正确:

  

2017-10-22T15:00