总结: java转给js处理的时间格式一般为两种,一种为字符串格式,直接在js中用SimpleDateFormat 进行转换格式即可,第二种为ms类型(既传过来的时间,以毫秒形式传递过来)
例1:(在前段处理java传过来的ms数据,转换为yyyy/mm/dd hh:mm:ss)
function(data){
var date = new Date(date.create.time()); // 获取时间戳
date.toLocaleString(); // 转成字符串 2016/12/21 09:09:10
}
例2:
{
field : 'crtTime',
title : '创建时间',
width : 100,
sortable :true,
align : 'center',
formatter : crtTimeFtt
},
function crtTimeFtt(val, row) {
if (val != null) {
var date = new Date(val);
return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
}
}
例3: 当前时间
<%
Date currTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss",
Locale.CHINA);
formatter.format(currTime);
%>
第一种方法:
前端根据选定的日期获得一个字符串日期,将该字符串日期解析为Date,直接传参到java后端即可
代码如下:
var dt = new Date(conf.nBakTime);//前端解析为Date,后端直接用Date。
第二种方法:
前端直接传字符串参数,java后端解析。在entity中time中进行解析。代码如下:
// public void setN_bak_time(String time) throws ParseException {
// SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
// this.time = format.parse(time);
// }即后端解析为Date再使用。
java从数据库取出数据传到java,java再转到前端,前端的得到的数据是(你传入的时间与1970年1月1日 之间的差 的毫秒数(及得到两者之间年月日的差,后转为毫秒数(ms)))
所以,在js中需要对日期进行转换为Date。
日期数据是基于1970年计算的,即2016年显示的为(2016-1970)然后计算毫秒数,
如下以 1899年某月某日计算出来的数据为例。
var dt = new Date(-2209838057000);//可以直接解析为dt格式(将毫秒转换为Date形式)
var dt = new Date (yyyy/mm/dd HH:ii:ss);//也可以直接解析为dt格式(如果传过来为字符串,也可以进行转换)
dt到毫秒级日期的转换为:var d = dt.getTime();//将Date格式转换为毫秒
转换为字符串的函数有dt.toLocaleString()//转换为年月日时分秒的字符串日期,
dt.toLocaleDate()//转换为只有年月日的字符串日期,
dt.toLocaleTimeString()//转换为时分秒的字符串日期。
js中日期的函数及参考网址
http://www.360doc.com/content/14/0103/12/15643_342282034.shtml
最后项目里边自己写的日期转换函数如下:
var tempDate = new Date(conf.n_bak_time);
var years = tempDate.getFullYear();
var months = tempDate.getMonth()+1;
var days = tempDate.getDate();
var hours = tempDate.getHours();
var minutes = tempDate.getMinutes();
var seconds = tempDate.getSeconds();
if(months<10)months = "0"+months;
if(days<10)days = "0"+days;
if(hours<10)hours = "0"+hours;
if(minutes<10)minutes = "0"+minutes;
if(seconds<10)seconds = "0" +seconds;
var confDate = years+"/"+months+"/"+days+" "+hours+":"+minutes+":"+seconds;
conf.nBakTime =angular.copy(confDate);
将毫秒级的时间转换为1970/07/15 2:10:40