将日期和小时/分钟/秒转换为更正格式JavaScript



我以格式'20190702'和小时/分钟/秒的格式'125657'什么是将其转换为07/02/2019, 12:56:57

的最简单方法
const time = "125657";
  const chuncks = str.match(/.{1,2}/g).join(":"); //12:56:57

日期呢?

您可以使用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}`)

最简单的也许是:

const time = "125657".replace(/(..?)(..)(..)/, "$1:$2:$3");
const date = "20190702".replace(/(....)(..)(..)/, "$2/$3/$1");
console.log(date, time);

如果时间字符串可以拥有5位数字而不是6,则第一个模式中的问号可以使用。如果您确定自己始终得到6位数字,则可以将其遗漏。

您可以使用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>

使用Moment.js您提供模式以及数据。

在这里," HH"的意思是"小时"。

"use strict";
const moment = require("moment");
console.log(moment("125652", "hhmmss").toDate());

假设固定长度输入小数位数,您可以做这样的事情:

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);

如果这一年是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)

您可以使用Moment.JS库格式化您的日期。在您的情况下,代码可能看起来像:

var time = '20190702,125657';
var formated_time = moment(time, "YYYYMMDD,HHmmss").format('DD/MM/YYYY,HH:mm:ss');

最新更新