首先需要在<head></head>里加上<s:head/>
否则不会引用日期控件需要调用的javascript
先说说<s:date>的用法:
<s:date name="orderDate" format="yyyy-MM-dd" />
就是吧orderDate的值,格式化为yyyy-MM-dd
如果你用<s:property value="orderDate" />来取值,显示的就是yy-MM-dd
再来说说<s:datetimepicker>的用法:
<s:datetimepicker name="form.orderDate" language="en" type="date" displayFormat="yyyy-MM-dd" value="today" />
name就不解释了;
language是下拉日期的语言,如果你是中文环境那默认就是zh,因为我这里涉及到多语言,所以为了统一就设置成en;
type是类型,日期是date,时间是time;
displayFormat不用解释也知道是格式化日期格式;
value是设置的值,我这里设置的是today,默认显示服务器当前日期,还能设置成什么目前还不知道。
日期搞定了,但是如果有2个日期,它们怎么比较呢?
js代码:
var a = dojo.widget.byId("id_form_orderDate").inputNode.value;
var b = dojo.widget.byId("id_form_orderDateEnd").inputNode.value;
var c = new Date(a);
var d = new Date(b);
if (Date.parse(c) - Date.parse(d) > 0)
{
alert("orderDate > orderDateEnd");
return false;
}
解释:id_form_orderDate是怎么来的,我没有定义id,
但是它会按照name自动生成一个id,因为name的值是form.orderDate,
但为什么不是id_form.orderDate呢,用js的都知道点意味着什么。
如果我的name值是orderDate,那id就是id_orderDate。