Typo3 比较日期

Typo3 比较日期,typo3,fluid,Typo3,Fluid,我想比较两个日期。我想设置一个条件,检查数据库中的日期是否早于两天内的日期 以下是我的两个变量: {<f:format.date format="d.m.Y">+2 days</f:format.date>} {<f:format.date format="d.m.Y">{day.valid}</f:format.date>} {+2天} {{day.valid} 我想在模板中解决这个问题,而不是在模型或控制器中。使用format=“U”将日期

我想比较两个日期。我想设置一个条件,检查数据库中的日期是否早于两天内的日期

以下是我的两个变量:

{<f:format.date format="d.m.Y">+2 days</f:format.date>}
{<f:format.date format="d.m.Y">{day.valid}</f:format.date>}
{+2天}
{{day.valid}

我想在模板中解决这个问题,而不是在模型或控制器中。

使用
format=“U”
将日期转换为unix时间戳,并进行比较。您需要添加一个包含比较日期的变量


日期有效

将日期分配给变量»yourdate«

<f:if condition="{f:format.date(date: '+2 days', format: 'Y-m-d')} < {f:format.date(date: yourdate, format: 'Y-m-d')}">
    <f:then>
       yourdate is smaller than now + 2 days.
    </f:then>
    <f:else>
        yourdate is greater than or equal to now + 2 days.
    </f:else>
</f:if>

你的约会时间比现在短+2天。
您的日期大于或等于现在+2天。

这是我当前的解决方案,它添加了一个当前日期,并根据内容中的日期进行一些计算

在控制器中,将当前日期添加到数据:

$this->view->assign('date_now',new\DateTime())

这在流体中以{date_now}的形式提供,然后:

<f:if condition="{f:format.date(date: date_now, format: '(Y-m-d)')} > {f:format.date(date: '{event.date}-4 weeks', format: '(Y-m-d)')}">
   <f:then>
      <p>Event date is past</p>
   </f:then>
   <f:else>
      <p>Event date is upcoming</p>
   </f:else>
</f:if> 

活动日期已过

活动日期即将到来

请注意,在右侧进行一些计算时,附加的引号和花括号是如何出现的(
“{event.date}-4周”


PS对于日期比较,我更喜欢
Y-m-d
格式,而不是
U
,因为我们不想比较当前时间,只想比较日期。

事实上:因为DateTime有一个
getTimestamp
方法(,自5.3.0起),它完全符合流体中支持的getter方法命名,所以下面是完全可能的。给定$date1和$date2都是分配给模板的DateTime实例:

<f:if condition="{date1.timestamp} < {date2.timestamp}">...</f:if>
。。。

将两个日期作为unix时间戳整数进行比较,而无需格式化日期。因此,对于您的情况,分配一个
$date=(new\DateTime('now'))->modify('+2天')并与流体中的代码进行比较”。或者只需分配
time()
时间戳并直接与之比较,跳过日期时间用法。

根据传入的内容,这可能会为您提供超过个日期,因为时间戳也将包含分钟。。。。因此,如果你想知道你是否在第二天,Y-m-d更合适。即使在那里,也无法看到或复制结束语“”。它需要一些空格