对于Status2日期格式化处理的问题,我在网上搜了下说是通过以下三种方式可以实现日期的格式化处理,但我今天要分享的是通过JS的方式实现Status2 <s:textfield>中的日期格式化输出问题。
* 这是使用<s:textfield>标签没处理的时间输出情况,如下图:
下面这段代码是我的JSP页面代码(代码简化处理了,原来我的代码还加有样式):
<li><label>绑定时间:</label></li>
<li><s:textfield id="bindTime" name="" ></s:textfield></li>
* 正常的输出应该是这样的<li><s:textfield id="bindTime" name="pushDevice.bindTime" ></s:textfield></li>,但这样得到的结果是一个时间戳,显然不是我们所要的。
1.我也是参照网上给出的三种办法试验,结果没出来,请教了下公司的大神,下面的代码是JS对日期的格式化处理:
$(function(){
var times = <%=request.getAttribute("pushDevice.bindTime")%>;
var d = new Date(times);
var r = d.format("yyyy-MM-dd hh:mm:ss");
$("#bindTime").val(r);
})
* pushDevice为我bean里边的对象名
* 这是经过 JS 处理后的时间输出情况,如下图:
经过以上处理的结果,就是可以得到我们想要的时间格式了。
下面我也把网上的给出的三种处理办法列出来了,供大家参考:
* 转载:http://blog.knowsky.com/188737.htm
1、利用 <s:date>进行格式化,如:
<s:date name="pushDevice.bindTime" format="yyyy-MM-dd" />
就是将属性pushDevice.bindTime按yyyy-MM-dd的格式进行输出。
注:name和format都不能省略,但这种方式显然也不符合我们需求,我们是在<s:textfield>中输出的
2、利用<s:param>进行格式化,如:
<s:textfield name="bindTime">
<s:param name="value" ><s:date name="pushDevice.bindTime" format="yyyy-MM-dd" /></s:param>
</s:textfield>
注:同样这些标签中的name属性也不能省。
3、通过国际化的方式:
首先在struts.properties中配置
struts.custom.i18n.resources=globalMessages。
然后在globalMessages_zh_CN.properties和globalMessages_en_US.properties文件中添加如下内容:
global.datetime = {0 ,date ,yyyy-MM-dd HH:mm:ss}
global.date = {0, date ,yyyy-MM-dd}
最后在页面中使用下面的语句就可以实现日期的格式化输出了:
//golbal.date样式
<s:textfield name="pushDevice.bindTime" value="%{getText('global.date',{pushDevice.bindTime})}"/>
<span style="font-family: 宋体; font-size: 15px; line-height: 24px; background-color: rgb(242, 249, 255);"><span style="color:#003300;">//global.datetime样式</span></span>
<s:textfield name="pushDevice.bindTime" value="%{getText('global.datetime',{pushDevice.bindTime})}"/>
注:以上方法前两个是测试通过的。第三个没有实验过,大家可以实验一下试试。