☰
JS处理日时分秒格式转化为秒(如:10天10小时10分钟10秒 => 900610秒)
2026/10/16 3:34:23 网站建设 项目流程

Ⅰ、提取日时分秒格式中的数字:

1、将年月日时分秒格式通过JS提取数字的代码为:

// 逻辑说明:// 此时的 passlifetime 就是类似 10天10小时10分钟10秒 的格式;// 逻辑1(天):先将 passlifetime 转成字符串,若该字符串中包含 "天",那么就以 "天" 为特殊字符分成两个数组并获取下标为0的数组值,并做去除空格处理,来作为最终的从 "天" 提取出来的数字,否则就为0;// 逻辑2(小时):先将 passlifetime 转成字符串,若该字符串中包含 "天",那么就以 "天" 为特殊字符分成两个数组并获取下标为1的数组值,若该数组值中包含 "小时",那么就以 "小时" 为特殊字符分成两个数组并获取下标为0的数组值,并做去除空格处理,来作为最终的从 "小时" 提取出来的数字,否则就为0;而若该字符串中不包含 "天",那么就以 "小时" 为特殊字符分成两个数组并获取下标为0的数组值,并做去除空格处理,来作为最终的从 "小时" 提取出来的数字,否则就为0;// 逻辑3(分钟):先将 passlifetime 转成字符串,若该字符串中包含 "小时",那么就以 "小时" 为特殊字符分成两个数组并获取下标为1的数组值,若该数组值中包含 "分钟",那么就以 "分钟" 为特殊字符分成两个数组并获取下标为0的数组值,并做去除空格处理,来作为最终的从 "分钟" 提取出来的数字,否则就为0;而若该字符串中不包含 "小时",那么就以 "分钟" 为特殊字符分成两个数组并获取下标为0的数组值,并做去除空格处理,来作为最终的从 "分钟时" 提取出来的数字,否则就为0;// 逻辑4(秒):先将 passlifetime 转成字符串,若该字符串中包含 "分钟",那么就以 "分钟" 为特殊字符分成两个数组并获取下标为1的数组值,若该数组值中包含 "秒",那么就以 "秒" 为特殊字符分成两个数组并获取下标为0的数组值,并做去除空格处理,来作为最终的从 "秒" 提取出来的数字,否则就为0;而若该字符串中不包含 "分钟",那么就以 "秒" 为特殊字符分成两个数组并获取下标为0的数组值,并做去除空格处理,来作为最终的从 "秒" 提取出来的数字,否则就为0;consthandleEdit=(index,row)=>{//UserPasswordExpirationDialogForm.value.username = row.username//UserPasswordExpirationDialogVisible.value = trueUserPasswordExpirationDialogForm.value.day=row.passlifetime.toString().includes('天')?row.passlifetime.toString().split('天')[0].trim():0UserPasswordExpirationDialogForm.value.hours=row.passlifetime.toString().includes('天')?row.passlifetime.toString().split('天')[1].split('小时')[0].trim():row.passlifetime.toString().includes('小时')?row.passlifetime.toString().split('小时')[0].trim():0UserPasswordExpirationDialogForm.value.minutes=row.passlifetime.toString().includes('小时')?row.passlifetime.toString().split('小时')[1].split('分钟')[0].trim():row.passlifetime.toString().includes('分钟')?row.passlifetime.toString().split('分钟')[0].trim():0UserPasswordExpirationDialogForm.value.seconds=row.passlifetime.toString().includes('分钟')?row.passlifetime.toString().split('分钟')[1].split('秒')[0].trim():row.passlifetime.toString().includes('秒')?row.passlifetime.toString().split('秒')[0].trim():0UserPasswordExpirationDialogForm.value.expirationDay=row.notify_time.toString().includes('天')?row.notify_time.toString().split('天')[0].trim():0}

2、成功转换的例子:

输入日时分秒格式为:10秒, 输出结果为 0 0 0 10
输入日时分秒格式为:10分钟10秒, 输出结果为 0 0 0 10
输入日时分秒格式为:10小时10分钟10秒, 输出结果为 0 10 10 10
输入日时分秒格式为:10天10小时10分钟10秒, 输出结果为 10 10 10 10

3、最终的输出截图:

其一、10小时10分钟10秒

其二、10天10小时10分钟10秒

Ⅱ、提取的数字转化为秒:

1、通过JS提取数字转化为秒的代码为:

// 此时是设置 passlifetime 值为转化后的秒值:// 逻辑:日值*24*3600 + 时*3600 + 分*60 + 秒letfinalValue=parseInt(UserPasswordExpirationDialogForm.value.day*24*3600)+parseInt(UserPasswordExpirationDialogForm.value.hours*3600)+parseInt(UserPasswordExpirationDialogForm.value.minutes*60)+parseInt(UserPasswordExpirationDialogForm.value.seconds)// let url = '/api/user/passtimeoutinfo'letobj={username:UserPasswordExpirationDialogForm.value.username,passlifetime:finalValue,notify_time:UserPasswordExpirationDialogForm.value.expirationDay,}

2、最终的输出截图:

10天10小时10分钟10秒格式转化为:900610秒

Ⅲ、小结:

其一、哪里有不对或不合适的地方,还请大佬们多多指点和交流!
其二、若有转发或引用本文章内容,请注明本博客地址(直接点击下面 url 跳转) https://blog.csdn.net/weixin_43405300,创作不易,且行且珍惜!
其三、有兴趣的话,可以多多关注这个专栏(Vue(Vue2+Vue3)面试必备专栏)(直接点击下面 url 跳转):https://blog.csdn.net/weixin_43405300/category_11525646.html?spm=1001.2014.3001.5482
其四、再有兴趣的话,也可以多多关注这个专栏(Java)(直接点击下面 url 跳转):https://blog.csdn.net/weixin_43405300/category_12654744.html?spm=1001.2014.3001.5482

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询