这两天在学springMVC,写了个商品管理系统demo。
遇到一个难点,日期时间是private Timestamp createtime;所以AJAX请求会报400参数错误,因为传createtime有问题,
后来想了下,前端做个处理,将时间戳转为Timestamp格式,下面贴JS代码:
/**
* 格式化显示时间日期
* @param time Unix时间戳格式, 如:1393579588
* @param format 希望的时间格式,如:"yyyy-MM-dd hh:mm:ss"
* @returns string 格式化后的时间字符串
*/
function toDateTime (time, format) {
var x = new Date(parseInt(time)),
y = format;
var z = {M: x.getMonth() + 1, d: x.getDate(), h: x.getHours(), m: x.getMinutes(), s: x.getSeconds()};
y = y.replace(/(M+|d+|h+|m+|s+)/g, function (v) {
return ((v.length > 1 ? "0" : "") + eval('z.' + v.slice(-1))).slice(-2)
});
var formatDateTime = y.replace(/(y+)/g, function (v) {
return x.getFullYear().toString().slice(-v.length)
});
return formatDateTime;
};
/**
* 获取日期时间的时间戳
* @param datetime 格式为"2014-03-03 09:36:00"
* @returns {Number} 时间戳
*/
function toTimeStamp(datetime) {
var dateAndTime = datetime.split(' ');
var date = dateAndTime[0].split('-');
//如果时间格式没有传递时分秒,在下面补上
if (dateAndTime.length == 1) {
dateAndTime.push("00:00:00");
}
var time = dateAndTime[1].split(':');
return parseInt(new Date(date[0], date[1] - 1, date[2], time[0], time[1], time[2]).getTime());
};
使用方法:toDateTime(1487214582000,"yyyy-MM-dd hh:mm:ss") 返回:"2017-02-16 11:09:42"
后端的话遇到的坑: Ajax请求400和乱码,在springmvc.xml中配置如下:
<!-- 解决ajax请求问题 @ResponseBody 的实现类其默认的编码是 iso-8859-1的问题 -->
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<!-- This can be overridden by setting the supportedMediaTypes property -->
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>