sql-server - Laravel 8 - SQL Server 日期类型(不是日期时间)解析错误
问题描述
我想格式化date
从数据类型为date
(不是datetime
)的 SQL Server 获取的位置。
我试过在模型中添加日期转换,如下所示:
class MyModel extends Model
{
protected $casts = [
'date' => 'date:Y',
];
}
但有一个错误:
无法解析“2021 年 4 月 20 日 12:00:00:AM”:DateTime::__construct():无法在位置 20 (:) 解析时间字符串(2021 年 4 月 20 日 12:00:00:AM)
当我将 SQL Server 中的数据类型更改为 时datetime
,效果很好。
我尝试过任何解析方法(在访问器中)使用 Carbon 或date('d-m-Y', strtotime($date))
,当数据类型为 时仍然存在错误,date
但当数据类型为datetime
.
有什么建议么?谢谢。
解决方案
所以我创建了一个访问器来操作date
字符串而不是格式化它。
public function getDateAttribute($date)
{
$date = explode(' ', $date);
return date('Y', strtotime($date[1].$date[0].$date[2]));
}
推荐阅读
- regex - Notepad++ 正则压制,正则查找和替换
- gnuplot - Gnuplot:类似示波器的线条样式?
- javascript - 在 html 内容中显示 html 标签,在 html 中显示 html 代码片段
- r - 带有传单的交互式等值线图不准确地映射数据
- python - 如何将 pd.dataframe 列表导入现有 excel 文件的末尾而不覆盖它
- git - 当重命名文件并使用旧名称创建新文件时,什么工作流程可以缓解 git 合并冲突?
- windows - 尝试设置 Windows Jenkins slave,但找不到可用的“Windows Slave”插件
- html - 我正在尝试制作具有两种不同颜色的警报框。前任。包含图片
- c++ - 线程消息或更好:访问“大师班”中其他班级的成员
- arrays - 重复排列排列与 DI 序列