由于您将字符串“orderDatetime”传递给strtotime()
函数,因此它返回 1970 年,您的dateTimeBetween
作品如dateTimeBetween('1970', 'now')
. 变量的传递是用$orderDatetime
. 但是如果你将这样的变量传递给dateTimeBetween()
,未来的 dateTime 可能会被传递,这是不可能的。
仅当您的订单日期已过时才有效:
orderDatetime: '<dateTimeBetween("-200 days", "now")>'
completedDatetime: '90%? <dateTimeBetween($orderDatetime, "now")>'
如果您不想生成未来的日期,那么您需要创建自定义的 faker 函数,例如:
public function dateTimeBetweenAfter($dateFrom, $dateTo)
{
$date = new DateTime($dateFrom->format('Y-m-d H:i:s'));
$dateTo = $date->modify($dateTo);
return FakerDateTime::dateTimeBetween($dateFrom, $dateTo);
}
并像这样使用它:
orderDatetime: <dateTimeThisYear()>
completedDatetime: '90%? <dateTimeBetweenAfter($orderDatetime, "+1 year")>'