JavaScript时间日期转中文显示与测试代码运行效率案例

JavaScript时间日期转中文显示与测试代码运行效率案例

案例:计算i从0到1000000再到6000000的时间

  var time = new Date().getTime();
  var timeList = [];
  timeStart();
  function timeStart() {
    timeList.length = 0;
    timeList[0] = new Date().getTime();
  }

  var sum = 0;
  for (var i = 0; i < 1000000; i++) {
    sum += i;
  }
  showTime();
  function showTime() {
    if (timeList.length === 0) return 0;
    timeList.push(new Date().getTime());
    console.log(
      timeList[timeList.length - 1] - timeList[timeList.length - 2]
    );
    return timeList[timeList.length - 1] - timeList[timeList.length - 2];
  }

  var sum = 0;
  for (var i = 0; i < 6000000; i++) {
    sum += i;
  }
  showTime();
  showStart();
  function showStart() {
    if (timeList.length === 0) return 0;
    timeList.push(new Date().getTime());
    console.log(timeList[timeList.length - 1] - timeList[0]);
    return timeList[timeList.length - 1] - timeList[0];
  }

案例:中文日期时间
方法一:

<div id="div1"></div>

<script>
    var div1;
    var cnNumber=["零","一","二","三","四","五","六","七","八","九"]

    init();
    function init(){
        div1=document.getElementById("div1");
        setInterval(animation,16);
    }

    function animation(){
        div1.innerHTML=getDateCN();
    }

    function getDateCN(){
        var date=new Date();
        var year=getCnYear(date.getFullYear());
        var month=getCnNumber(date.getMonth()+1);
        var day=getCnNumber(date.getDate());
        var week=date.getDay();
        var hour=getCnNumber(date.getHours());
        var minutes=getCnNumber(date.getMinutes(),true);
        var seconds=getCnNumber(date.getSeconds(),true);
        week=week===0 ? "星期日" : "星期"+cnNumber[week];
        return year+"年"+month+"月"+day+"日 "+week+" "+hour+"点"+minutes+"分"+seconds+"秒";
    }

    function getCnYear(year){
        return year.toString().split("").reduce(function(value,item){
            return value+cnNumber[item];
        },"")
    }

    function getCnNumber(num,bool){
        if(num===0) return cnNumber[num];
        if(num<10) return  bool ? "零"+cnNumber[num] : cnNumber[num];
        if(num===10) return "十";
        if(num%10===0) return cnNumber[num/10]+"十";
        if(num<20) return "十"+cnNumber[num%10];
        num=num.toString();
        if(num<100) return cnNumber[num[0]]+"十"+cnNumber[num[1]];
        return "错误的数字"
    }

</script>

方法二:

<div id="div1"></div>

<script>
  var arr = ["零","一","二","三","四","五","六","七","八","九","十",];
  var ids;
  var div;
  init();
  function init() {
    var div1 = document.getElementById("div1");
    ids = setInterval(localTime, 16);
  }
  function localTime() {
    //获取当前时间
    var date = new Date();
    //设置time为空字符串,之后用+=将年月日连接放入
    var time = "";
    // 先写好年月日阿拉伯数字下的框架,在进行全汉字转换
    // time += date.getFullYear() + "年";
    // time += date.getMonth() + 1 + "月";
    // time += date.getDate() + "日";
    // time += "星期" + date.getDay();
    // time += date.getHours() + "时";
    // time += date.getMinutes() + "分";
    // time += date.getSeconds() + "秒";

    time += years(date.getFullYear()) + "年 ";
    time += saiban(date.getMonth() + 1) + "月 ";
    time += saiban(date.getDate()) + "日 ";
    time += "星期" + saiban(date.getDay()) + " ";
    time += saiban(date.getHours()) + "时";
    time += saiban(date.getMinutes()) + "分";
    time += saiban(date.getSeconds()) + "秒";
    console.log(time);
    div1.innerHTML = time;
  }
  //转换年为汉字
  function years(year) {
    //设置y为空字符串用来盛放最后的结果
    var a = ""; //undefined
    //将获取的年份转换成字符型
    year = String(year); //2020
    //利用循环,当i<字符串长度时循环,将year的每一项转换为上边数组中的汉字
    for (var i = 0; i < year.length; i++) {
      a += arr[year[i]];
    } //二零二零
    //将结果返回
    return "公元" + a; //公元二零二零
  }

  //   以下为月、日的汉字转换,因为转换方式相同,化作一个函数就可以

  //   //转换月为汉字
  //   function months(month){
  //     var b="";
  //     console.log(month)
  //     if(month<10){
  //         b=arr[month]
  //     }
  //     if(month==10){
  //         b=arr[10]
  //     }
  //     if(month>10){
  //         if(month%10==0){
  //             b=arr[parseInt(month/10)]+arr[10]
  //         }
  //     }
  //     return b;
  //   }
  //   //转换日为汉字
  //   function days(day){
  //     var c="";
  //     console.log(day)
  //     if(day<10){
  //         c=arr[day]
  //     }
  //     if(day==10){
  //         c=arr[10]
  //     }
  //     if(day>10){
  //         if(day%10==0){
  //             c=arr[parseInt(day/10)]+arr[10]
  //         }
  //          else c = arr[parseInt(m / 10)] + arr[10] + arr[m % 10];
  //     }
  //     return c
  //   }

  //年月转化化为函数saiban
  function saiban(m) {
    var c = "";
    if (m < 10) {
      c = arr[m];
    }
    if (m == 10) {
      c = arr[10];
    }
    if (m > 10 && m < 20) {
      if (parseInt(m / 10) == 1) {
        c = arr[10] + arr[m % 10];
      }
      if (m % 10 == 0) {
        c = arr[parseInt(m / 10)] + arr[10];
      }
    }
    if (m > 19) {
      if (m % 10 == 0) {
        c = arr[parseInt(m / 10)] + arr[10];
      } else c = arr[parseInt(m / 10)] + arr[10] + arr[m % 10];
    }
    return c;
  }
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值