我以“ 20190702”格式获取日期,以“ 125657”格式获取小时/分钟/秒
将其转换为07/02/2019, 12:56:57
const time = "125657";
const chuncks = str.match(/.{1,2}/g).join(":"); //12:56:57
那日期呢?
答案 0 :(得分:3)
您可以只使用substr
函数来提取字符串的一部分,然后组合这些部分以形成新的字符串
const time = "125657";
const date = "20190702";
const formattedTime = `${time.substr(0,2)}:${time.substr(2,2)}:${time.substr(4,2)}`
const formattedDate = `${date.substr(4,2)}/${date.substr(6,2)}/${date.substr(0,4)}`
console.log(`${formattedDate}, ${formattedTime}`)
答案 1 :(得分:1)
您可以使用Moment.js来解析日期,它将接受大多数格式。
let momentDate = new moment.utc('20190702', 'YYYYMMDD');
console.log("Parsed date: ", momentDate);
let momentDateTime = new moment.utc('20190702125657', 'YYYYMMDDHHmmss');
console.log("Parsed date (with time): ", momentDateTime );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
答案 2 :(得分:1)
使用Moment.js 您提供模式以及数据。
在这里,“ hh”表示模式中的“小时”。
"use strict";
const moment = require("moment");
console.log(moment("125652", "hhmmss").toDate());
答案 3 :(得分:1)
最简单的 可能是这样的:
const time = "125657".replace(/(..?)(..)(..)/, "$1:$2:$3");
const date = "20190702".replace(/(....)(..)(..)/, "$2/$3/$1");
console.log(date, time);
如果时间字符串可以是5位而不是6位,则可以使用第一个模式中的问号。如果您确定总是得到6位,则可以将其忽略。
答案 4 :(得分:1)
假设固定长度的输入字符串为十进制数字,则可以执行以下操作:
const date = "20190702";
const time = "125657";
const formatted_date = date.replace(/(\d{4})(\d{2})(\d{2})/, "$3/$2/$1");
//const formatted_time = time.match(/\d{2}/g).join(":");
const formatted_time = time.replace(/(\d{2})(\d{2})(\d{2})/, "$1:$2:$3");
const formatted_date_time = `${formatted_date}, ${formatted_time}`;
console.log(formatted_date_time);
答案 5 :(得分:0)
如果年份为2位数,则可以使用相同的确切逻辑,而只需添加reverse
,但是由于长度不同,我建议您手动编写:
const date = '20190702';
const chunks = date.match(/.{1,2}/g);
const formattedDate = [chunks[3], chunks[2], chunks[0]+chunks[1]].join('/');
console.log(formattedDate)
答案 6 :(得分:0)
您可以使用moment.js库来格式化日期。就您而言,代码可能类似于:
var time = '20190702,125657';
var formated_time = moment(time, "YYYYMMDD,HHmmss").format('DD/MM/YYYY,HH:mm:ss');