项目中用到的js传日期参数到java后端,java后端传参到js前端

总结: 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);
%>

扫描二维码关注公众号,回复: 2010204 查看本文章


第一种方法:


前端根据选定的日期获得一个字符串日期,将该字符串日期解析为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

猜你喜欢

转载自blog.csdn.net/qq_42117592/article/details/80948933