【发布时间】:2021-08-09 01:32:56
【问题描述】:
我想问一下,我们如何验证 Excel 文件中的日期。我在下面遇到了一些奇怪的测试用例。
首先,我在我的 excel 文件中输入了 5/13/2021,但是当我转储时,它不会显示相同的内容,而是显示 44329。
但幸运的是,我可以使用以下代码显示到 5/13/2021:
$temp = Carbon::instance(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value));
$datetime = Carbon::parse($temp);
所以,我最大的问题是我不能使用before 或after 验证。就像下面的代码一样,它总是失败,即使我填写正确。
return Validator::make($rows->toArray(), [
'*.0' => 'required|after:now|before:0.1' //publish_at
'*.1' => 'required|before:0.0' // expired_at
])->validate();
如下图所示,publish_at 的值为44329,expired_at 的值为44330。我不知道为什么会失败。我也试过gt 或lt 验证它仍然失败。
有人知道怎么做。会很感激的。
【问题讨论】:
标签: php laravel laravel-validation laravel-excel