当前位置: 首页 > 知识库问答 >
问题:

如何在laravel中设置sql server的日期时间格式?

艾俊晖
2023-03-14

我正在尝试格式化laravel中的日期时间值,以使其与sql server格式匹配,我收到以下错误:

找不到分离符号找到了意外数据。发现意外数据。跟踪数据

Im在我的模型中使用自定义格式:

protected $dateFormat = 'd-m-Y H:i:s';

它对创建方法控制器很有效,没有问题,当尝试更新时出错,我认为与值如何存储在数据库中有关。

使用修补程序,我在模型中检索updated_at的值,并以下一种格式显示:

updated_at: "2018-07-24 09:14:09.000"

因此,当Im更新此值时,使用的格式为:

protected $dateFormat = 'd-m-Y H:i:s';

我认为它应该是类似于d-m-Y H: i: s.000但是不起作用,我如何解决这个问题?

共有3个答案

赵景曜
2023-03-14

您也可以尝试SQL /Select查询:

\DB::原始("DATE_FORMAT(comments.date,'%d-%m-%Y%H:%i:%s')sth_date")

例如:

Comment::orderBy('date','desc')->with('user')
        ->join('users','comments.id_user', '=', 'users.id')

        ->select('users.username', 'comments.id', 'comments.id_race', 'comments.status', 'comments.ip_address', 'comments.id_user', 
        \DB::raw ("DATE_FORMAT(comments.date,'%d-%m-%Y %H:%i:%s') as sth ") );
訾安邦
2023-03-14

您使用的是什么版本的Laravel?这在一个依赖PHP7的最新版本中得到了修复(不记得具体是哪个版本)。

日期格式应为“Y-m-d H:i:s.v”。v是毫秒(在PHP7.0.0中添加)。您遇到的更新和插入问题是在返回更新/插入的模型时引起的。它被传递给Carbon以将日期和日期时间字段转换为Carbon的实例,但日期时间字段具有“trailing”属性

阎德宇
2023-03-14

我有完全相同的问题,当切换到laravel版本5.6。现在我找到了正确的处理方法。

return 'Y-d-m H:i:s.v';

查看日期(d)和月份(m)的切换,最后需要输入一个表示毫秒的.v。这对我很管用。请参见我的完整的基础课程:

<?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;
}
 类似资料:
  • 我试图实现以下所示的功能: 这个代码失败了,因为 类DateTime的对象无法转换为字符串 另一个问题是,我觉得应该有更稳健/优雅的方法来解决这个问题。那么,如何在迁移中正确设置默认的值呢?

  • 我在想是否有人能帮我。 我是一个非常新的ASP我想格式化当前的日期和时间如下: 但我能做的只有以下几点 有人能帮我一下吗。

  • 问题内容: 我使用以下代码检索当前日期和时间,然后使用以下方法将其添加到表中。 约会时间 hibernate 问题答案: 要将日期更改为序号,您需要使用以下后缀。看看这个链接,以及 还可以使用fmt库在jsp页面上设置日期格式

  • 问题内容: 我一直在开发使用以下代码的Android应用程序: 我需要从当前时刻开始8小时后获取日期,并且我希望该日期具有24小时格式,但是我不知道如何通过SimpleDateFormat进行设置。我还需要该日期具有格式。 问题答案: 这将为您提供24小时格式的日期。

  • 我需要使用php将日期时间插入到oracle表中。 我的日期字符串是这种格式: 当我在php中使用这种格式时, $date1=to_date('2013-10-22 08:02:30','YYYY-MM-DD HH24: MI: SS') 我看到oracle表中的数据是PM格式的。这怎么可能?我如何更改to\u日期,以便任何时间12都是上午,任何时间12点及以上都是下午?

  • 问题内容: 我在Windows 7机器上运行Java应用程序,在该机器上,我的区域设置已设置为将日期格式设置为YYYY-mm- dd,将时间格式设置为HH:mm:ss(例如“ 2011-06-20 07:50:28”) 。但是,当我使用格式设置日期时,却看不到“ 2011年6月20日上午7:50:28”。我需要做些什么来格式化客户自己的操作系统来显示日期的日期格式? 这是我所讨论的代码如下所示: