我在想问题出在哪里。我要输入“01-02-2018”来指2018年1月2日。然后创建一个变量,将其固定为mysql的标准2018-01-02日期格式并保存。但是,当它保存时,它将其保存为2018-02-01,将月份和日期转换为2018年2月1日。下面是我的代码:
验证
'prescribe_date' => 'nullable|date_format:"m-d-Y"|max:10',
修理
$prescribe_dateFix = date('Y-m-d', strtotime($request->prescribe_date));
节约
$prescription->prescribe_date = $prescribe_dateFix;
3条答案
按热度按时间fcg9iug31#
strtotime
会把你的约会解释为d-m-Y
默认情况下,它会认为是2月1日。根据手册:注:
通过查看各个组件之间的分隔符,可以消除m/d/y或d-m-y格式的日期的歧义:如果分隔符是斜杠(/),则假定为美式m/d/y;如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式。
你需要使用
date_create_from_format
取而代之的是:输出:
ou6hu8tu2#
实现这一点的“laravelish”方法是使用内置的carbon库进行智能php数据处理:
当然,您还应该指定
prescribe_date
字段是相应模型类中的日期(请参见https://laravel.com/docs/5.7/eloquent-mutators#date-突变子):在
Prescription
型号等级:myss37ts3#
你可以试试这个。