【问题标题】:Comparing dates with Velocity scripting?将日期与 Velocity 脚本进行比较?
【发布时间】:2017-02-09 12:44:44
【问题描述】:

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

您的帮助将是惊人的!

【问题讨论】:

    标签: date datetime velocity marketo


    【解决方案1】:

    查看 Velocity Apache API 中的 Class ComparisonDateToolClick here

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

    【讨论】:

    • 是的,我最后使用了 compareTo(),它在我能够确保两个日期的格式相同之后起作用。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多