为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel Excel 导入返回错误日期

Laravel Excel 导入返回错误日期

PHP
小怪兽爱吃肉 2023-08-11 16:40:55
我有一个 Excel 文件,其中有一个日期列。该日期看起来像“17.07.2020”。我正在使用 Laravel 和 Maatwebsite Excel 导入。当我将导入的数据保存到MySQL时,MySQL中的日期始终是“1970-01-01”。这是我现在拥有的代码:return new Product([    .......    'discountBeginning'  => date('Y-m-d', strtotime($row['discount_beginning'])]);我想将 Excel 中的日期格式设置为“2020-07-17”。
查看完整描述

3 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

尝试这个


$date = new DateTime($row['discount_beginning']);

echo $date->format('d.m.Y');


查看完整回答
反对 回复 2023-08-11
?
慕后森

TA贡献1802条经验 获得超5个赞

$date =  "17.07.2020";

$d2 = \Carbon\Carbon::createFromFormat('d.m.Y', $date)->format('Y-m-d');

dd($d2); // returns: "2020-07-17"

->toDateString();如果返回的日期不是字符串,您也可以尝试附加。如果它已经是一个字符串,这将失败。


查看完整回答
反对 回复 2023-08-11
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

您正在使用 Laravel,因此您已经可以访问很棒的 Carbon 库。对于 Excel 文件中数据的格式(日.月.年),您可以像这样使用它:


return new Product([

    .......

    'discountBeginning'  => \Carbon\Carbon::createFromFormat('d.m.Y', $row['discount_beginning']),

]);

获得 Carbon 实例后,您可以根据php 的日期语法对其进行格式化,例如:


$date = \Carbon\Carbon::createFromFormat('d.m.Y', $row['discount_beginning']);

$date->format('Y-m-d');


查看完整回答
反对 回复 2023-08-11
  • 3 回答
  • 0 关注
  • 192 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信