实习日志24

项目场景:

全省医疗单位会计核算数据标准接口记录。

json格式中的时间递归自动查找,JavaScript时间格式转换


问题描述

时间格式转换,一般时间都是带_date和_time的时间

把时间一个一个的找出来再替换浪费时间

接口太多太杂,时间参数部分一致,部分不同

如:创建时间:create_date


解决方案:

为解决这个问题,用js识别_date和_time的数据字段

由于可能包含在[time,{time},{{time}}] 这样的子串中,所以需要递归查询

示例代码:

function timeFormatStampAtArray(array) {
    // 时间格式转换 gla_vou_head
    if (array && Array.isArray(array)) {
        array.forEach((obj) => {
            for (let key in obj) {
                if (obj.hasOwnProperty(key)) {
                    const value = obj[key];
                    if ((key.includes('_date') || key.includes('_time')) && typeof value === 'string' && !isNaN(Date.parse(value))) {
                        obj[key] = timeFormatStamp(value);
                        console.log(`Variable ${key} contains a valid date: ${obj[key]}`);
                    } else if (typeof value === 'object') {
                        // 如果属性的值是对象,则递归调用 extractDateVariables
                        extractDateVariables(value);
                    }
                }
            }
        });
    } else {
        console.error('不是一个有效的数组或对象');
    }
}

时间格式转换:

原本格式:时间戳,即一串数字

更改为yyyyMMddhhmmss格式

function timeFormatStamp(time) {
    var date = new Date(time);
    var year = date.getFullYear();
    var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
    var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
    var hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
    var minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
    var second = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
    return "" + year + month + day + hour + minute + second;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值