JS 时间字符串转换成时间

本文介绍了一个将时间字符串转换为绝对时间的算法,通过解析输入字符串中的年、月、日、小时、分钟、秒,并设置到Date对象中,最终返回该日期的时间戳。适用于日期时间处理的场景。
/**
* 把时间字符串转换成绝对时间
*
* @param datastr 时间格式为:2012-12-2616:46:46
* @return
*/
function timeExchange(datastr) {
var date = new Date();
var perfex = datastr.split(" ")[0];
var surfex = datastr.split(" ")[1]
if (perfex) {
var y = perfex.split("-")[0] / 1;
//因为月是从0开始的,所以减一
var m = perfex.split("-")[1] / 1-1;
var d = perfex.split("-")[2] / 1;
date.setFullYear(y, m, d);
}
if (surfex) {
var h = surfex.split(":")[0] / 1;
var m = surfex.split(":")[1] / 1;
var s = surfex.split(":")[2] / 1;
date.setHours(h, m, s, 0);
}
return date.getTime();
}
### 将字符串转换为指定日期格式(YYYYMMDD) 在 JavaScript 中,可以利用自定义函数来实现将字符串转换为目标日期格式的功能。通过解析输入的字符串并重新组合成所需的 `YYYYMMDD` 格式,能够满足需求。 以下是基于提供的参考资料中的方法实现的一个解决方案: #### 实现代码 ```javascript function dateStringFormatter(inputDateStr) { const date = new Date(inputDateStr); const YYYY = date.getFullYear(); const MM = String(date.getMonth() + 1).padStart(2, '0'); // 获取月份并补零 const DD = String(date.getDate()).padStart(2, '0'); // 获取日并补零 return `${YYYY}${MM}${DD}`; } // 测试用例 console.log(dateStringFormatter("2023-07-15")); // 输出: 20230715 console.log(dateStringFormatter(new Date())); // 当前日期按 YYYYMMDD 格式输出 ``` 上述代码实现了将任意合法的日期字符串或当前日期对象转化为目标格式 `YYYYMMDD` 的功能[^2]。其中的关键在于使用了 `padStart()` 方法确保月和日始终占据两位数长度。 如果需要更灵活的时间格式化支持,则可以直接调用参考资料中提到的通用时间格式化工具 `dateFormater` 函数,并设置相应的模板参数: #### 使用通用格式化器 ```javascript function dateFormater(formater, t){ let date = t ? new Date(t) : new Date(), Y = date.getFullYear() + '', M = date.getMonth() + 1, D = date.getDate(); return formater.replace(/YYYY|yyyy/g,Y) .replace(/YY|yy/g,Y.substr(2,2)) .replace(/MM/g,(M<10?'0':'') + M) .replace(/DD/g,(D<10?'0':'') + D); } // 调用示例 const formattedDate = dateFormater('YYYYMMDD', "2023-07-15"); console.log(formattedDate); // 输出: 20230715 ``` 此版本允许传入不同的模板字符串来自由定制最终输出形式,灵活性更高。 --- 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值