使用 Velocity 脚本比较日期?

Comparing dates with Velocity scripting?

我目前正在使用 Marketo,我们想通过查看输入自定义对象信息的日期来提取一些数据。

我知道 php、javascript 等,但 Velocity 是一个新事物,虽然很熟悉但我无法找到比较日期的最佳方法。

在下面的代码中,我尝试了两种方法,使用数字工具或日期工具,但运气不佳。 ##获取所有自定义对象数据 #set( $items = ${customerPurchaseData_cList} )

#set( $currentDateNumber = $number.toNumber('25/01/2016') )
#set( $startDateNumber = $number.toNumber($item.orderDate) )

$currentDateNumber
$startDateNumber 

#if( $startDateNumber <= $currentDateNumber )

## if the date is current date is less than do something

#end

#set($cal1=$date.toCalendar('25/01/2016'))
#set($strDate1=$date.format('MM/dd/yyyy hh:mm:ss a',$cal1))
##set($cal1 = $cal1.get('yyyy-M-d H:m:s')) 
#set($calCompare=$item.orderDate.compareTo($strDate1))

<ul>
#foreach ( $item in $items )

#if ($calCompare > 0)

<li>$item.MetalType</l1>

#end ##end of if statement

#end ##end of foreach
</ul>

## > $date.get('2017-01-01')
### if ($item.orderDate > $date.get('2017-01-01'))

有比较日期值的简便方法吗?比如把它们变成UNIX时间戳?

你的帮助会很棒!

查看 Velocity Apache Class ComparisonDateTool 中的 API:Click here

只要您的日期格式正确,您就应该能够比较两者并获得您需要的值 运行 对它们进行 if 语句。

在这里,#是Velocity模板语法的一部分,所以我们必须使用它。

#set ($otherDate = $vtool.formatDate("2020-04-10 00:00:00", "MM/dd/yyyy"))
#set ($currentDate = $vtool.getDate("MM/dd/yyyy"))

 #if($currentDate.compareTo($otherDate)<= 0)
   //Execute some code.
 #end