art-template 4.0时间戳转时间

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39921345/article/details/79998522

今天用模板渲染的时候,所有直接展示的都没问题,但是后台传时间戳需要我这边进行相关处理。看了网上很多处理方法,只能说用新的版本的art,他们的helper方法已经过时!坑了我好几次。然后我也用了他们的过滤器,发现每次过滤器都报错说没有函数!一整天都在坑里,晚上有大神帮忙分析,终于爬出坑。现在记录一下;

以下,是我的模板;用的是原生语法,

  <script id="tpl-jjunpaid" type='text/html'>
    
    <% for(var i = 0;i<list.length;i++){ %>
        <tr>
            <td><%=i+1 %></td>
            <td><%=list[i].contacts_name %></td>
            <td><%=list[i].contacts_phone %></td>
            <td><%=list[i].place_name %></td>
            <td><%=list[i].airport %></td>
            <td class="flight1"><%=list[i].flight %></td>
            <td><% var times=list[i].c; var times_str = $imports.timestamp(times) %>
             //这里是时间转化的地方!!用变量首先保存你的时间戳times=list[i].c,继续再用变量保存调用写的过滤器的规则$imports.timestamp(times)
             <%= times_str%> //最后输出成日期!
        </td>
<td><%=list[i].order_number %></td> <td class="car_type"> <%=list[i].type_of_car.car_type == 1?"舒适":"豪华"%><%=list[i].type_of_car.seat_num == 5?"五坐":"七座"%></td> <td><%=list[i].order_offer_price%></td> <td><%=list[i].order_price%></td> <td class="remark"> <%=list[i].note%> </td> <td> <a href="javascript:;" data-id = '<%=list[i].detail_id%>'>推送提醒付款</a> </td> <td> <a href="car_private_detal1.html" class="detal">查看详情</a> </td> </tr> <% } %> </script>

先找到时间戳转日期的插件;

  // 时间戳转日期函数
  function timestampToTime(val) {
    var date = new Date(val);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
    Y = date.getFullYear() + '-';
    M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
    D = date.getDate() + ' ';
    h = date.getHours() + ':';
    m = date.getMinutes() + ':';
    s = date.getSeconds();
    return Y + M + D + h + m + s;
  }; 

模板通过请求拿到数据,然后渲染;

 // 模板渲染
        var html = '';
//注册事件,虽然不是过滤器,但是这里也可以注册并且使用!跟前面的 var times_str = $imports.timestamp(times)的进行对应!

        template.defaults.imports.timestamp = function(value){
          return timestampToTime(value);       
        };
//最后渲染
        html = template('tpl-jjunpaid', data.data);
        $('tbody').append(html);
以上需要注意的是需要在js注册一个过滤器,然后在模板中必须像管道一层一层的输出,不能一次性直接输出!

猜你喜欢

转载自blog.csdn.net/weixin_39921345/article/details/79998522