YYPOST群发软件 发表于 7 天前

展示时间戳的各种复杂处理方法



展示时间戳的各种复杂处理方法









// 时间戳加1解决方案 - 高级版
// 功能:展示时间戳的各种复杂处理方法

// 时间戳处理工具函数
function 时间戳工具() {
    return {
      // 获取当前时间戳
      获取当前时间戳: function() {
            return time.nowStamp();
      },
      
      // 时间戳加1(避免科学计数法)
      时间戳加1: function(时间戳) {
            return (Number(时间戳) + 1).toString();
      },
      
      // 时间戳减1(避免科学计数法)
      时间戳减1: function(时间戳) {
            return (Number(时间戳) - 1).toString();
      },
      
      // 时间戳转换为日期对象
      转换为日期对象: function(时间戳) {
            return new Date(Number(时间戳));
      },
      
      // 时间戳转换为格式化日期字符串
      格式化日期: function(时间戳, 格式) {
            var 日期 = new Date(Number(时间戳));
            var 年 = 日期.getFullYear();
            var 月 = (日期.getMonth() + 1).toString().padStart(2, '0');
            var 日 = 日期.getDate().toString().padStart(2, '0');
            var 时 = 日期.getHours().toString().padStart(2, '0');
            var 分 = 日期.getMinutes().toString().padStart(2, '0');
            var 秒 = 日期.getSeconds().toString().padStart(2, '0');
            
            switch (格式) {
                case 'YYYY-MM-DD':
                  return 年 + '-' + 月 + '-' + 日;
                case 'YYYY-MM-DD HH:mm:ss':
                  return 年 + '-' + 月 + '-' + 日 + ' ' + 时 + ':' + 分 + ':' + 秒;
                case 'HH:mm:ss':
                  return 时 + ':' + 分 + ':' + 秒;
                default:
                  return 日期.toLocaleString();
            }
      },
      
      // 计算两个时间戳之间的差值(毫秒)
      计算时间差: function(时间戳1, 时间戳2) {
            return Math.abs(Number(时间戳1) - Number(时间戳2));
      },
      
      // 将毫秒转换为可读的时间差
      毫秒转时间差: function(毫秒) {
            var 天 = Math.floor(毫秒 / (1000 * 60 * 60 * 24));
            var 时 = Math.floor((毫秒 % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            var 分 = Math.floor((毫秒 % (1000 * 60 * 60)) / (1000 * 60));
            var 秒 = Math.floor((毫秒 % (1000 * 60)) / 1000);
            
            var 结果 = [];
            if (天 > 0) 结果.push(天 + '天');
            if (时 > 0) 结果.push(时 + '小时');
            if (分 > 0) 结果.push(分 + '分钟');
            if (秒 > 0) 结果.push(秒 + '秒');
            
            return 结果.length > 0 ? 结果.join(' ') : '0秒';
      },
      
      // 验证时间戳是否有效
      验证时间戳: function(时间戳) {
            var 数字时间戳 = Number(时间戳);
            return !isNaN(数字时间戳) && 数字时间戳 > 0 && 数字时间戳 < 9999999999999;
      },
      
      // 批量处理时间戳
      批量处理时间戳: function(时间戳数组, 处理函数) {
            return 时间戳数组.map(处理函数);
      },
      
      // 生成指定范围内的时间戳数组
      生成时间戳数组: function(开始时间戳, 结束时间戳, 间隔毫秒) {
            var 结果 = [];
            var 当前时间戳 = Number(开始时间戳);
            var 结束 = Number(结束时间戳);
            var 间隔 = Number(间隔毫秒);
            
            while (当前时间戳 <= 结束) {
                结果.push(当前时间戳.toString());
                当前时间戳 += 间隔;
            }
            
            return 结果;
      },
      
      // 倒计时函数
      倒计时: function(秒数, 提示信息) {
            printl(提示信息 || '开始倒计时...');
            for (var i = 秒数; i > 0; i--) {
                printl(i + '...');
                sleep.millisecond(1000);
            }
            printl('开始执行!');
      }
    };
}

// 主函数
function 运行时间戳高级示例() {
    printl("=== 开始时间戳高级处理示例 ===");
   
    var 工具 = 时间戳工具();
   
    // 开始倒计时
    工具.倒计时(3, "准备开始时间戳处理示例...");
   
    // 1. 获取当前时间戳
    printl("\n1. 获取当前时间戳:");
    var 当前时间戳 = 工具.获取当前时间戳();
    printl("   当前时间戳: " + 当前时间戳);
    sleep.millisecond(1000);
   
    // 2. 时间戳基本操作
    工具.倒计时(2, "准备演示时间戳基本操作...");
    printl("\n2. 时间戳基本操作:");
    var 加1后 = 工具.时间戳加1(当前时间戳);
    var 减1后 = 工具.时间戳减1(当前时间戳);
    printl("   时间戳加1: " + 加1后);
    printl("   时间戳减1: " + 减1后);
    sleep.millisecond(1000);
   
    // 3. 时间戳转换
    工具.倒计时(2, "准备演示时间戳转换...");
    printl("\n3. 时间戳转换:");
    var 日期对象 = 工具.转换为日期对象(当前时间戳);
    printl("   日期对象: " + 日期对象);
    printl("   格式化日期 (YYYY-MM-DD): " + 工具.格式化日期(当前时间戳, 'YYYY-MM-DD'));
    printl("   格式化日期 (YYYY-MM-DD HH:mm:ss): " + 工具.格式化日期(当前时间戳, 'YYYY-MM-DD HH:mm:ss'));
    printl("   格式化日期 (HH:mm:ss): " + 工具.格式化日期(当前时间戳, 'HH:mm:ss'));
    sleep.millisecond(1000);
   
    // 4. 时间差计算
    工具.倒计时(2, "准备演示时间差计算...");
    printl("\n4. 时间差计算:");
    var 一小时前 = (Number(当前时间戳) - 3600000).toString();
    var 一天前 = (Number(当前时间戳) - 86400000).toString();
    var 一小时差 = 工具.计算时间差(当前时间戳, 一小时前);
    var 一天差 = 工具.计算时间差(当前时间戳, 一天前);
    printl("   一小时前时间戳: " + 一小时前);
    printl("   一天前时间戳: " + 一天前);
    printl("   与一小时前的时间差: " + 工具.毫秒转时间差(一小时差));
    printl("   与一天前的时间差: " + 工具.毫秒转时间差(一天差));
    sleep.millisecond(1000);
   
    // 5. 边界情况处理
    工具.倒计时(2, "准备演示边界情况处理...");
    printl("\n5. 边界情况处理:");
    var 大时间戳 = "9999999999999";
    var 小时间戳 = "1000";
    printl("   大时间戳: " + 大时间戳);
    printl("   小时间戳: " + 小时间戳);
    printl("   大时间戳加1: " + 工具.时间戳加1(大时间戳));
    printl("   小时间戳减1: " + 工具.时间戳减1(小时间戳));
    sleep.millisecond(1000);
   
    // 6. 时间戳验证
    工具.倒计时(2, "准备演示时间戳验证...");
    printl("\n6. 时间戳验证:");
    var 有效时间戳 = "1774503195100";
    var 无效时间戳 = "abc";
    printl("   验证有效时间戳: " + 工具.验证时间戳(有效时间戳));
    printl("   验证无效时间戳: " + 工具.验证时间戳(无效时间戳));
    sleep.millisecond(1000);
   
    // 7. 批量处理时间戳
    工具.倒计时(2, "准备演示批量处理时间戳...");
    printl("\n7. 批量处理时间戳:");
    var 时间戳数组 = [当前时间戳, 一小时前, 一天前];
    var 加1后的数组 = 工具.批量处理时间戳(时间戳数组, 工具.时间戳加1);
    printl("   原始时间戳数组: " + 时间戳数组);
    printl("   批量加1后: " + 加1后的数组);
    sleep.millisecond(1000);
   
    // 8. 生成时间戳数组
    工具.倒计时(2, "准备演示生成时间戳数组...");
    printl("\n8. 生成时间戳数组:");
    var 开始时间 = (Number(当前时间戳) - 3600000).toString();
    var 结束时间 = 当前时间戳;
    var 间隔 = 60000; // 1分钟
    var 生成的数组 = 工具.生成时间戳数组(开始时间, 结束时间, 间隔);
    printl("   生成从一小时前到现在,间隔1分钟的时间戳数组:");
    printl("   数组长度: " + 生成的数组.length);
    printl("   前3个时间戳: " + 生成的数组.slice(0, 3));
    printl("   后3个时间戳: " + 生成的数组.slice(-3));
    sleep.millisecond(1000);
   
    // 9. 综合应用示例
    工具.倒计时(2, "准备演示综合应用示例...");
    printl("\n9. 综合应用示例:");
    printl("   当前时间: " + 工具.格式化日期(当前时间戳, 'YYYY-MM-DD HH:mm:ss'));
    printl("   一小时后: " + 工具.格式化日期(工具.时间戳加1((Number(当前时间戳) + 3600000).toString()), 'YYYY-MM-DD HH:mm:ss'));
    printl("   明天此时: " + 工具.格式化日期(工具.时间戳加1((Number(当前时间戳) + 86400000).toString()), 'YYYY-MM-DD HH:mm:ss'));
    sleep.millisecond(1000);
   
    // 完成倒计时
    工具.倒计时(3, "示例即将完成...");
    printl("\n=== 时间戳高级处理示例完成 ===");
}

// 执行示例
运行时间戳高级示例();

页: [1]
查看完整版本: 展示时间戳的各种复杂处理方法