我目前正在做一个项目,在这个项目中,我用 Alice-bundle 创建夹具来运行测试以确保我的 API 端点正常工作。一切正常,除了日期时间属性。
无论我传递什么字符串,例如:<dateTime('2019-09-23 14:00:00')>
,它总是给我错误的日期和时间,通常是这样的:1998-10-25T14:29:45+01:00
。
即使使用<dateTime('now')>
也不起作用 - 它也给了我一些2000年代之前的日期和时间,而这正是我发现的一些例子确实使用的。
灯具可能如下所示:
PathToTaskEntity:
my_task:
title: 'My tasks'
description: 'These are all the tasks just for me!!!'
startsAt: <dateTime('now')>
endsAt: <dateTime('now')>
createdBy: '@some_higher_user'
理想情况下,我只想传递一个字符串,以便我可以定义日期和时间,并确保它以正确的格式正常工作。
并提供帮助将不胜感激。
在这里看 https://github.com/nelmio/alice/blob/master/doc/advanced-guide.md#functions 我们读到:
函数可以是 Faker 或 PHP 本机(或在全局范围内注册(函数。
所以我建议尝试一个创建DateTime
对象的PHP原生函数
<date_create_from_format ( 'Y-m-d H:i:s' , '2019-09-23 14:00:00')>
// or
<date_create('now')>
这就是它的工作原理。<dateTime()>
函数接受一个名为$max
的参数。因此,它所做的是在开始日期(不确定是哪一个,可能是 1900 年左右的范围内(和那个$max
参数之间创建一个日期。
我猜你会想使用<dateTimeBetween()>
它需要一个开始日期和一个结束日期在它们之间创建一个假日期。所以我想如果开始日期 = 结束日期,那么你会得到所需的固定日期。
看看 fzaninotto/Faker 库文档。它是AliceBundle用来伪造数据的库。在那里,您可以看到可以使用哪些与日期时间相关的函数。