js获取当前系统时间后台转化为long型

本文介绍了一种通过身份证号码分析访客年龄分布的方法,并展示了如何使用JavaScript发起AJAX请求来获取访客年龄统计数据,同时提供了后端处理逻辑及SQL查询语句。

   

js: $.ajax({

        url: "visitorScaleAnalyse.do?method=getVisitorAgeCount",
        data: {
            "zeroTime":DateUtil.dateToStr(new Date(), "yyyy-MM-dd")//获取当前系统时间
        },
        type: 'post',
        dataType: "json",
        success: function (data, text) {
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            
        },
        onLoading: function () {
            startMyWaitting('处理中...');
        }

    }); 

后台:

 

   /**
     * 查询参数
     *
     * @param request
     * @return
     */
    private HashMap getQueryParam(HttpServletRequest request) {
        HashMap param = new HashMap();
        String zeroTime = request.getParameter("zeroTime");
//        Long p = 1468585465796l;
//        param.put("zeroTime", p);
        Date date = null;
        try {
            date = stringToDate(zeroTime, "yyyy-MM-dd"); // String类型转成date类型
        } catch (ParseException ex) {
            java.util.logging.Logger.getLogger(VisitorScaleAnalyseController.class.getName

()).log(Level.SEVERE, null, ex);
        }
        long currentTime = dateToLong(date); // date类型转成long类型
        param.put("zeroTime", currentTime);
        return param;
    }

// string类型转换为date类型
    public static Date stringToDate(String strTime, String formatType)
            throws ParseException {
        SimpleDateFormat formatter = new SimpleDateFormat(formatType);
        Date date = null;
        date = formatter.parse(strTime);
        return date;
    }
    // date类型转换为long类型
    public static long dateToLong(Date date) {
        return date.getTime();
    }

sql语句由身份证号截取分时间段查询人员数量:

select nnd as '年龄段',count(*) as '人数' from(  
 select   
 case  
  when year(curdate())-if(length(visitorSpotNumber)=18,substring(visitorSpotNumber,7,4),if(length(visitorSpotNumber)=15,concat('19',substring(visitorSpotNumber,7,2)),null))>=18 and year(curdate())-if(length(visitorSpotNumber)=18,substring(visitorSpotNumber,7,4),if(length(visitorSpotNumber)=15,concat('19',substring(visitorSpotNumber,7,2)),null))<=30 then '18-30岁'  
  when year(curdate())-if(length(visitorSpotNumber)=18,substring(visitorSpotNumber,7,4),if(length(visitorSpotNumber)=15,concat('19',substring(visitorSpotNumber,7,2)),null))>=31 and year(curdate())-if(length(visitorSpotNumber)=18,substring(visitorSpotNumber,7,4),if(length(visitorSpotNumber)=15,concat('19',substring(visitorSpotNumber,7,2)),null))<=45 then '31-45岁'  
  when year(curdate())-if(length(visitorSpotNumber)=18,substring(visitorSpotNumber,7,4),if(length(visitorSpotNumber)=15,concat('19',substring(visitorSpotNumber,7,2)),null))>=45 and year(curdate())-if(length(visitorSpotNumber)=18,substring(visitorSpotNumber,7,4),if(length(visitorSpotNumber)=15,concat('19',substring(visitorSpotNumber,7,2)),null))<=60 then '46-60岁'  
   ELSE '其他'
 end   
 as nnd from dwms_t_visitor
WHERE addTime BETWEEN 1468380186015 AND 1468636727062
)a group by nnd

遍历List,获取存在list中的map值:

//查询各时段访客数量

        List visitcount = timeIntervelStaticsService.getQueryVisitorCount(param);
        for (int i = 0; i < visitcount.size(); i++) {
            HashMap map = new HashMap();
            map = (HashMap) visitcount.get(i);
            obj.put("oneTosix", map.get("count(*)"));
            map = (HashMap) visitcount.get(i + 1);
            obj.put("sixTotwelve", map.get("count(*)"));
            map = (HashMap) visitcount.get(i + 2);
            obj.put("twelveToeighteen", map.get("count(*)"));
            map = (HashMap) visitcount.get(i + 3);
            obj.put("eighteenTotwentyfour", map.get("count(*)"));
            break;
        }

另外可以直接在后台获取当前的系统日期,就不用从js往后传了,代码:

        Date dt = new Date();
        SimpleDateFormat matter1 = new SimpleDateFormat("yyyy-MM-dd");
        System.out.println("当前日期:"+matter1.format(dt));
或者先从long型的时间中取得年月日:

Date date=new Date(System.currentTimeMillis());
System.out.println((1900+date.getYear())+"-"+(date.getMonth()+1)+"-"+date.getDate()+"");//获取的年份是1900年开始的需要加上1900,月份是从0开始的




### 后台管理模块功能说明 YSshop意象商城系统后台管理模块基于SpringBoot2和MyBatisPlus构建,采用模块化开发方式,具备清晰的业务逻辑和良好的可扩展性。管理员可以通过后台进行商品管理、订单处理、用户权限配置、营销活动设置等核心操作,适用于企业级电商管理需求[^1]。 #### 商品管理 后台支持对商品信息的全生命周期管理,包括商品添加、编辑、上下架、分类管理以及SKU配置。商品信息存储在数据库中,并通过MyBatisPlus实现数据持久化操作。管理员可以设置商品的库存、价格、运费模板以及关联的素材库资源。 #### 订单管理 系统提供完整的订单管理功能,管理员可以在后台查看所有订单状态(如待支付、已发货、已完成等),并进行订单状态更新、物流信息录入、退款处理等操作。订单数据通过Redis缓存优化查询性能,提升后台响应速度[^1]。 #### 用户管理 后台支持用户列表查看、权限分配、角色管理等功能。系统基于SpringSecurity和JWT实现权限控制,确保后台操作的安全性。管理员可以为不同角色配置访问权限,限制或开放特定功能模块的使用权限。 #### 营销活动配置 YSshop后台集成了多种营销功能,如拼团、砍价、秒杀、优惠券、积分兑换、分销系统等,管理员可以通过后台界面进行活动创建、规则配置、时间设置等操作,提升用户活跃度和转化率。 #### 系统工具与日志管理 系统包含日志模块(yshop-logging)和第三方工具模块(yshop-tools),支持后台操作日志记录、错误日志追踪、接口调用监控等功能。管理员可以查看系统运行状态,排查异常问题,并通过代码生成模块(yshop-generator)快速生成业务代码,提升开发效率[^2]。 #### 部署与权限配置 后台模块(yshop-admin)采用前后端分离架构,后端通过SpringBoot提供RESTful API接口,前端使用Vue.js或类似框架实现交互。部署时需要配置Nginx或直接使用SpringBoot内置Tomcat进行服务启动,并在安全层面配置CORS、JWT Token验证和SpringSecurity访问控制策略。 ### 示例代码 以下是一个后台商品管理接口的代码片段,展示如何通过SpringBoot实现商品信息的获取: ```java @RestController @RequestMapping("/api/admin/products") public class AdminProductController { @Autowired private ProductService productService; @GetMapping("/{id}") public ResponseEntity<Product> getProductById(@PathVariable Long id) { Product product = productService.getProductById(id); return ResponseEntity.ok(product); } } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值