日期与时间戳的转换,处理后台传的时间,捕获今天昨天的日期

该文章提供了一系列JavaScript函数,包括日期转时间戳、时间戳转日期、处理后台传来的带时区时间以及计算时间差的方法。这些函数可用于前端展示和时间操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日期转时间戳

// 日期转时间戳
function timechange(t) {
    let date = new Date(t)
    let time = (date.getTime())/1000
    return time
}

时间戳转日期

// 时间戳转日期
function changetime(time) {
    time = parseFloat('' + time);
    let currentData = new Date();
    let date = new Date(time);
    let y = date.getFullYear();
    let month = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) :                    date.getMonth() + 1);
    let d = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
    let h = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
    let m = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
    let s = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
    return  y + "-" + month + "-" + d;
}
​

将后台传过来的时间进行转换(往后+8小时)

即数据库操作时间类型为:datetime 类型

前端接收到的参数为2022-03-18T01:46:08.000+00:00 这种加了时区的格式

这个格式的数据转换成前端可以展示的数据时,得往后+8小时(如果后台传过来的时间比数据库的早八个小时)

// 将后台传过来的时间进行转换(往后+8小时)
function resolvingDate(date){
        var d = new Date(date);
        var month = (d.getMonth() + 1) < 10 ? '0'+(d.getMonth() + 1) : (d.getMonth() + 1);
        var day = d.getDate()<10 ? '0'+d.getDate() : d.getDate();
        var hours = d.getHours()<10 ? '0'+d.getHours() : d.getHours();
        var min = d.getMinutes()<10 ? '0'+d.getMinutes() : d.getMinutes();
        var sec = d.getSeconds()<10 ? '0'+d.getSeconds() : d.getSeconds();
        times=d.getFullYear() + '-' + month + '-' + day + ' ' + hours + ':' + min + ':' + sec;
        return times;
}
 

JS中国标准时间转化为年月日时分秒‘yyyy-MM-dd hh:mm:ss(vue中使用)

http://t.csdn.cn/pW042icon-default.png?t=N6B9http://t.csdn.cn/pW042

捕获日期

//捕获日期
    function getNowFormatDate() {
        var date = new Date();
        var seperator1 = "-";
        var seperator2 = ":";
        var month = date.getMonth() + 1;
        //捕获今天的日期
        var strDate = date.getDate();
        //捕获昨天的日期需要-1
        //var strDate = date.getDate()-1;
        if (month >= 1 && month <= 9) {
            month = "0" + month;
        }
        if (strDate >= 0 && strDate <= 9) {
            strDate = "0" + strDate;
        }

        //currentdate打印出来的是 2020-07-04 15:12:12
        // var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate +
        //     " " + date.getHours() + seperator2 + date.getMinutes() +
        //     seperator2 + date.getSeconds();

        //currentdate打印出来的是 2020-07-04
            var currentdate2 = date.getFullYear() + seperator1 + month + seperator1 + strDate ;
            console.log(currentdate2);
        return currentdate2;
    }

计算时间差

//前提是传进来的两个参数均为new Date()类型
getLastDateDiff(startdate,enddate) {
    
    let difftime = enddate - this.data.startdate 
    var days=parseInt(difftime/(24*1000*3600));//计算相差的天数
    var leave=difftime%(24*3600*1000);//计算天数后剩余的毫秒数
    var h=parseInt(leave/(3600*1000));//计算小时数
     //计算分钟数
    var h_leave=leave%(3600*1000);
    var min=parseInt(h_leave/(60*1000));
     //计算秒数
    var min_leave=h_leave%(60*1000);
    var sec=parseInt(min_leave/1000);
    // var lastDateDiff =`停留了${days}天${h}小时${min}分钟${sec}秒`;
    var lastDateDiff =`${h}h${min}min${sec}s`;

    return lastDateDiff;
},

### 关于SAP日期字段无效的解决方案 在处理SAP中的日期字段时,可能会遇到诸如“日期无效”或“日期格式不正确”的错误。这类问题通常源于以下几个方面: #### 1. **日期格式不符合标准** SAP 中使用的默认日期格式通常是 `YYYYMMDD` 或者基于系统配置的具体格式。如果输入的日期未遵循此格式,则会引发验证失败。可以通过调整事务代码 `SCC4` 的设置来确认当前系统的日期格式[^4]。 #### 2. **区域设置差异** 如果用户的客户端设置了不同的区域选项(如语言、时间戳),可能导致日期解析异常。建议检查并统一服务器端和客户端的时间区域设置。具体操作可通过事务代码 `SU01` 进入用户管理界面查看相关参数。 #### 3. **程序逻辑中的硬编码问题** 当开发人员编写 ABAP 程序时,可能忽略了对不同地区日期格式的支持。例如,在某些情况下直接使用固定字符串而非动态获取系统日期格式,这会导致运行时报错。应确保所有涉及日期的操作均采用标准化函数模块,比如 `CONVERSION_EXIT_DATS_INPUT` 和 `CONVERSION_EXIT_DATS_OUTPUT`[^1]。 #### 4. **数据库层面约束冲突** 假设存在自定义增强或者第三方接口集成场景下,目标表可能存在额外的校验规则阻止非法值写入。此时需参照官方文档说明排查潜在隐患,并适当应用补丁更新版本至最新状态以修复已知漏洞[^2]。 针对上述情况可采取以下措施加以应对: - 对前端显示控件绑定事件监听器捕获异常提示给最终使用者; - 修改后台脚本加入更多鲁棒性的判断语句防止意外中断发生; - 定期维护升级保持软件处于良好兼容性水平之上; 以下是利用ABAP实现的一个简单例子展示如何安全转换用户输入成为内部存储所需的数值形式: ```abap DATA: lv_date TYPE dats. lv_date = cl_abap_conv_in_ce=>create( )->convert( EXPORTING text = '20231005' format = '(DATE)' ). IF sy-subrc <> 0. MESSAGE e001 WITH 'Invalid date provided'. ENDIF. ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值