Jfinal 日期比较显示

<td style="width: 80%;text-align: left;

#if(#date(data.record.send_date) > #date(data.record.task_end_date)) 
color: red 
#end">#(data.record.work_progress??'')</td>

两个字段一个是datetime类型,一个是date类型, 在渲染时要比较两个日期,使用#date内置函数报错

 #if parameter exists illegal char: '#'

语法不这样写 怎么写呢!!不会搞了 急急急急 大大

评论区

JFinal

2020-06-09 17:23

文档已强调过不要在表达式中使用字符 '#':
https://jfinal.com/doc/6-4

注意看文档 6-4 最后一小节

此外,date 类型的数据不能直接使用比较表达式,但你可以这样来比较:

#if( data.record.send_date.getTime() > data.record.task_end_date.getTime())
...
#end

因为 Date 对象中有一个 getTime() 可以返回 long 型的代表它的时间值

JFinal

2020-06-09 17:24

当然,你也可以使用 Date.after(...)、Date.before(...) 来比较日期的大小:

#if( data.record.send_date.before( data.record.task_end_date) )
...
#end

月月小赚

2020-06-11 17:09

@JFinal 谢谢大大

JFinal

2020-06-11 17:19

@月月小赚 jfinal 的 enjoy 模板引擎中的表达式是与 java 表达式直接打通的,有方法就调,有字段就取,极度方便,无需学习

fmpoffice

2020-12-05 20:24

config中加入了me.addDirective("now", NowDirective.class);
@JFinal 请问怎样获取当天日期getTime():
#(now()).getTime() 不行
#now().getTime() 不行

fmpoffice

2020-12-05 20:31

@JFinal #(now().getTime()) 也不行

JFinal

2020-12-05 22:50

@fmpoffice #now() 是指令,指令是不能放入指令使用的

当你在使用 #(now()) 的时候, 其中的 now() 是在使用一个 shared method

而当你在使用 #(now().getTime()) 的时候,其中的 getTime() 是在调用一个对象上的 方法,这个是 java 的用法

一定要注意区分指令、shared method、method 这三种用法的区别

一定要先看看文档,这部分只有一个章节, 20 分钟足以