Laravel奇怪的日期格式

时间:2017-10-23 18:31:12

标签: php laravel php-carbon

我继承了一个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知道格式化的来源。数据库中的数据与正常的日期时间值一样正常。

关于在哪里寻找的任何想法或建议?

1 个答案:

答案 0 :(得分:0)

此问题已通过将我们的PHP服务器从FreeBSD迁移到IIS来解决。

我们的环境没有合适的PDO SQLSRV驱动程序,无法正确地与我们的SQL Server数据库进行通信,并且Microsoft不提供FreeBSD的预编译版本。

我们的组织不需要使用FreeBSD,因此我们移至IIS,因为新成员更易于管理。使用IIS,我们能够下载针对IIS / Windows编译的Microsoft PDO SQLSRV驱动程序,这使得数据库查询产生正确的日期格式。