用Velocity脚本比较日期?

时间:2017-02-09 12:44:44

标签: date datetime velocity marketo

我目前正在使用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时间戳?

你的帮助会很棒!

2 个答案:

答案 0 :(得分:1)

查看Velocity Apache API中的Class ComparisonDateToolClick here

只要您的日期格式正确,您就应该能够比较两者并获得在其上运行if语句所需的值。

答案 1 :(得分:-1)

在这里,#是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