ege*_*ari 4 format freemarker date
freemarker中有没有办法比较日期来测试日期是今天还是昨天......或者我是否必须用Java编写代码来进行这些测试?
我基本上想要这样做:
<#------------------------------------------------------------------------------
 formatDate
------------------------------------------------------------------------------->
<#macro formatDate date showTime=true>
    <#if date??>
        <span class="Date">
            <#if date?is_today>
                Today
            <#elseif date?is_yesterday>
                Yesterday
            <#else>
                ${date?date}
            </#if>
        </span>
        <#if showTime>
            <span class="Time">${date?time}</span>
        </#if>
    </#if>
</#macro>
编辑:我最好的猜测是将"今天"和"昨天"传递给使用此函数的页面的模型,然后将日期值与模型中的这两个对象进行比较.我没有选择,但我不想为每个使用此宏的页面执行此操作.还有其他更好的选择吗?
<#if date??>
    <span class="Date">
        <#if date?date?string.short == today?date?string.short>
            Today
        <#elseif date?date?string.short == yesterday?date?string.short>
            Yesterday
        <#else>
            ${date?date}
        </#if>
    </span>
    <#if showTime>
        <span class="Time">${date?time}</span>
    </#if>
</#if>
小智 12
由于问题很老,我猜问题就消失了,但无论如何,我只是这样做:
<#assign diff = (mydate?long / 86400000)?round - (.now?long / 86400000)?round />
.now是一个buildin,86400是每个程序员可能知道的常量,如果你不被丑陋的外观推迟,这会给你一个整数差异天.今天是0,昨天是-1等
如果你想让?is_today工作,有一种方法可以通过实现如下所述的TemplateDirectiveModel来扩展freemarker语言:
http://freemarker.sourceforge.net/docs/pgui_datamodel_directive.html
但我不知道如何实际将它添加到可用的选项与?...符号:-)
| 归档时间: | 
 | 
| 查看次数: | 9546 次 | 
| 最近记录: |