JavaScript中事件对象经典案例

1、英文时间转化成字符串案例

function fillZero(number) {
            return number < 10 ? '0' + number : number;
        }
        var str = 'Thu Feb 09 2023 00:00:00 GMT+0800 (中国标准时间)';
        // 将str表示的时间转换为日期时间对象
        var d = new Date(str);
        var y = d.getFullYear();
        var m = fillZero(d.getMonth() + 1);
        var date = fillZero(d.getDate());
        var hh = fillZero(d.getHours());
        var mm = fillZero(d.getMinutes());
        var ss = fillZero(d.getSeconds());
        console.log([y, m, date].join('-') + ' ' + [hh, mm, ss].join(':'))

2、计算日期差案例

var start = '2023-1-29';
var end = '2023-4-5';
// 计算出两个时间相差的秒数
var diffSeconds = Math.floor((Date.parse(end) - Date.parse(start)) / 1000);
// 相差的天数
var day = parseInt(diffSeconds / (3600 * 24));
// 小时
var hours = parseInt((diffSeconds - 3600 * 24 * day) / 3600);
// 分钟
var mm = parseInt((diffSeconds - 3600 * 24 * day - hours * 3600) / 60);
// 秒
var ss = (diffSeconds - 3600 * 24 * day - hours * 3600) % 60;
console.log(day + '天' + hours + '小时' + mm + '分钟' + ss + '秒')
// 模板字符串  不是单双引号  叫做反引号 模板字符串 支持任意原始格式 并且可以解析变量
var str = `a

        ${day}c
b
`
console.log(str)
console.log(`${day}天${hours}小时${mm}分钟${ss}秒`)

3、显示中文时间案例

实现思路
            // 1、转换日期对象
            // 2、提取时间
            // 3、将数字转换为中文
            // 怎么将数字0-9与中文零-九对应起来  需要保存数字与中文的对应关系 可以使用数组保存零到九整几个中文 正好对应数组下标(以后需要设置对应关系 首选对象)
            // 观察年、月、日、时、分、秒 其中年最特殊 根据数字直接显示对应的中文即可 后面的几个数字规律相同 并且范围最大60
            // 分析规律
            0-9 直接显示对应的中文
            10 固定的十
            11-19 前面固定十 后面是数字对应的中文
            20-60之间 前面的数字中文加上固定的十 如果第二个数字非0的 拼接上对应的中文 否则 什么都没有

//设置中文的对应关系
        var chinese = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']
        console.log(format('2023-11-9 14:14:14'));
        function format(time) {
            // 转换日期对象
            var d = new Date(time);
            var year = formatYear(d.getFullYear());
            var month = formatOther(d.getMonth() + 1);
            var date = formatOther(d.getDate());
            var hh = formatOther(d.getHours());
            var mm = formatOther(d.getMinutes());
            var ss = formatOther(d.getSeconds());
            return `${year}年${month}月${date}号${hh}点${mm}分${ss}秒`
        }
        // 格式化 除了年外的其他的数字
        function formatOther(number) {
            if (number < 10) {
                return chinese[number];
            }
            if (number == 10) {
                return '十';
            }
            if (number < 20) {
                return '十' + chinese[number % 10];
            }
            // 25
            number = number.toString();
            return chinese[number[0]] + '十' + (number[1] == 0) ? '' : chinese[number[1]]

        }
        // 格式化年份
        function formatYear(year) {
            year = String(year);
            var result = '';
            for (var i = 0; i < year.length; i++) {
                var index = year[i]; //取出当前位置字符内容 字符内容 与中文的下标对应
                result += chinese[index];
            }
            return result;
        }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值