将日期和小时/分钟/秒转换为正确的格式javascript

时间:2019-07-03 14:35:06

标签: javascript

我以“ 20190702”格式获取日期,以“ 125657”格式获取小时/分钟/秒 将其转换为07/02/2019, 12:56:57

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

那日期呢?

7 个答案:

答案 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');