tobya / laravel-mssql-dateformat
检查并设置Laravel使用的MSSQL通用日期格式为'Ymd',以确保通用兼容性
v0.5
2024-08-13 12:23 UTC
Requires
- laravel/framework: ^8.0|^9.0|^10.0|^11.0
README
存在一个国际日期格式(ISO标准)(YYYY-MM-DD)Y-m-d
,理论上应该是通用的,然而MSSQL的实现是有缺陷的,并不是通用的,并且错误地将Y-m-d
解释为Y-d-m
,这简直是荒谬。Laravel使用Y-m-d
作为它们的国际格式,这可能会导致根据SQL SERVER设置出现错误。
存在一种格式Ymd
,可以绝对保证始终被SQLServer解释为Ymd
。此命令会修复illuminate库中的文件,以使用Ymd
而不是Y-m-d
。我请求在illuminate库中进行此更改,但感觉这个更改太大而无法进行。
希望这对使用PHP/Laravel的MSSQL的您有所帮助。
安装
使用composer安装
composer require tobya/laravel-mssql-dateformat
运行
通过调用laravel命令运行
artisan mssql:check-universal-date --update
您可以在不使用--update
的情况下运行,以进行检查而不修补文件。
配置
建议您将以下内容添加到您的项目composer.json
文件中,以便在安装和更新时自动运行此命令。
"scripts": { "post-update-cmd": [ "@php artisan mssql:check-universal-date --update" ], "post-install-cmd": [ "@php artisan mssql:check-universal-date --update" ] }
这是因为每次运行composer update
或composer install
时,如果更新了illuminate包,它将用原始版本覆盖SqlServerGrammar.php
,因此有必要在此可能发生的情况下调用命令。如果文件没有进行更改,则不会对其进行修改。
关于为什么这是必要的进一步阅读
这在网上有多个讨论