 | |  |  | 展示时间戳的各种复杂处理方法
- // 时间戳加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=== 时间戳高级处理示例完成 ===");
- }
- // 执行示例
- 运行时间戳高级示例();
复制代码
| |  | |  |
|