我继承了一个Laravel项目,并遇到了一个日期格式化的奇怪问题。
我收到以下错误:
Carbon.php第582行中的InvalidArgumentException
发现意外数据。
发现意外数据。
无法找到分隔符号
发现意外数据
追踪数据
堆栈跟踪显示问题与日期时间转换有关:
在Carbon :: createFromFormat('Y-m-d H:i:s.u','2017年10月10日02:31:04:493PM')中的Model.php第3003行
我可以看到有一个奇怪的日期格式,02:31:04:493PM
为时间。我不知道这种格式的来源,我整天都在努力。
应用程序代码中的所有日期格式都是'Y-m-d H:i:s.u'或'Y-m-d H:i:s'格式。我不知道在微秒之前这个无效的:
来自哪里,我似乎无法在代码中找到它。
我已经检查了Model.php,Carbon.php,所有继承自Model等的应用程序模型。当我在localhost环境中运行项目时,一切都很好,但是当我尝试开发环境时,发生此错误。
这让我相信它是特定于环境的东西,但我不太了解Apache / PHP / SQL Server知道格式化的来源。数据库中的数据与正常的日期时间值一样正常。
关于在哪里寻找的任何想法或建议?
答案 0 :(得分:0)
此问题已通过将我们的PHP服务器从FreeBSD迁移到IIS来解决。
我们的环境没有合适的PDO SQLSRV驱动程序,无法正确地与我们的SQL Server数据库进行通信,并且Microsoft不提供FreeBSD的预编译版本。
我们的组织不需要使用FreeBSD,因此我们移至IIS,因为新成员更易于管理。使用IIS,我们能够下载针对IIS / Windows编译的Microsoft PDO SQLSRV驱动程序,这使得数据库查询产生正确的日期格式。