Ale*_*ada 3 sql-server datetime laravel
我试图格式化日期时间值以laravel使它们与sql server格式匹配,我收到此错误:
找不到分隔符号 发现意外数据。发现意外数据。追踪数据
我在我的模型中使用自定义格式:
protected $dateFormat = 'd-m-Y H:i:s';
Run Code Online (Sandbox Code Playgroud)
它适用于控制器的创建方法,没有问题,尝试更新时会发生错误,我认为与值在数据库中的存储方式有关。
使用tinker,我在模型中检索了updated_at 的值,并以以下格式显示:
updated_at: "2018-07-24 09:14:09.000"
Run Code Online (Sandbox Code Playgroud)
因此,当我更新此值时,使用的格式是:
protected $dateFormat = 'd-m-Y H:i:s';
Run Code Online (Sandbox Code Playgroud)
我认为它应该是类似的东西,d-m-Y H:i:s.000但不起作用,我该如何解决这个问题?
laravel当切换到版本时,我遇到了完全相同的问题5.6。现在我找到了处理这个问题的正确方法。
创建一个Base像这样的类并添加一个public方法getDateFormat。你返回的日期有点不同
return 'Y-d-m H:i:s.v';
Run Code Online (Sandbox Code Playgroud)
看到日期 ( d) 和月份 ( m) 已切换,最后您需要添加.v代表毫秒的 a 。这对我来说效果很好。在这里查看我的完整Base课程:
<?php
namespace App\Models\Base;
use Illuminate\Database\Eloquent\Model;
class BaseModel extends Model
{
public function getDateFormat()
{
return 'Y-d-m H:i:s.v';
}
public $timestamps = false;
}
Run Code Online (Sandbox Code Playgroud)