我已经创建了 Behat 测试用例来断言日期时间。 日期时间已以 UTC 格式存储在我的数据库中。因此,使用 IntlDateFormatter 函数根据选定的区域设置(如 en、de 或 fr)进行转换。
我面临的问题是测试用例在我的本地计算机上运行良好,但在服务器上我必须断言日期时间与数据库值 UTC 格式相同。
例如保存的值为 2016-01-01 00:00:00。 从 UTC 转换回 php 值后,网站上显示的值是“01-01-2016 01:00”。
使用“01-01-2016 01:00”进行本地断言。 但在服务器上,它使用“01-01-2016 00:00”而不是“01-01-2016 01:00”。
谁能告诉我为什么测试用例因日期时间断言而失败?
最佳答案
创建日期时您似乎忽略了时区设置。
您需要在创建日期的所有位置(您的代码和行为测试)显式定义时区,或者确保所有环境都具有相同的时区设置(对于 php 以及数据库) 。
第二个选项对您来说可能会更容易、更快捷。第一个是更防弹。
关于symfony - 在数据库中以 UTC 格式保存的 Behat 测试用例中断言日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34960651/