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

laravel,将模型中存储的日期格式转换为在两者之间使用

laravel,将模型中存储的日期格式转换为在两者之间使用

PHP
牛魔王的故事 2022-08-05 16:44:56
我想使用whereBetween来获取日期间隔,created_date它工作正常:$data = Userorder::whereBetween('created_at', [$dateS->format('Y-m-d')." 00:00:00", $dateE->format('Y-m-d')." 23:59:59"])->get();但是我有另一个列名称order_date,其中此列的日期格式为:星期五 Jan,24,2020,所以我想将其转换为Y-m-d格式$dateS = new Carbon($startdate);$dateE = new Carbon($enddate);$data = Userorder::whereBetween('order_date', [$dateS->format('Y-m-d'), $dateE->format('Y-m-d')])->get();型:class Userorder extends Model{    protected $table = "userorders";    protected $fillable = [        'order_number',        'product_id',        'order_time',        'order_date',        'product_qty',        'product_price',        'product_totalprice',        'totalprice',        'product_instruction',        'product_size',        'storeinfo_id',        'product_serve',        'user_id',        'user_distance',        'user_address',        'user_instruction',        'office_name',        'st_address',        'order_state',        'order_city',        'order_zipcode',        'gratuity',        'suite_floor',        'driver_ask',        'phone_number',        'paid',        'isdelivery',        'deliveredon',        'show',        'confirmed',        'isonline',        'houseaccount'    ];    protected $primaryKey = 'id';    public $timestamps = true;
查看完整描述

1 回答

?
守着星空守着你

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

为了实现你所追求的目标,你应该能够将Laravel的iravel的whereRaw()方法与MySQL的STR_TO_DATE()函数(mysql日期格式字符串)结合使用:

Userorder::whereRaw('STR_TO_DATE(order_date, "%a %b,%d,%Y") between ? and ?', [$dateS->format('Y-m-d'), $dateE->format('Y-m-d')])->get();

话虽如此,如果可能的话,我建议更新您的表(和相关代码),以便它实际上是一列而不仅仅是一个字符串。order_datedate


查看完整回答
反对 回复 2022-08-05
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号