【问题标题】:Convert Date Format with Regex / Javascript [duplicate]使用正则表达式 / Javascript 转换日期格式 [重复]
【发布时间】:2020-10-08 20:28:46
【问题描述】:

我有以下格式的日期数据

2020-10-07 05:21:15。

我想将其转换为 Wed,7 Oct'20 -05:21pm。

我尝试了正则表达式

(new Date(2020-10-07 05:21:15)).toString().replace(/\S+\s(\S+)\s(\d+)\s(\d+)\s.*/,'$1 $2,$3')

但我得到了输出Oct7,2020,

谁能帮我用javascript或正则表达式格式化它。

【问题讨论】:

  • (new Date('2020-10-07 05:21:15')).toString().replace(/\S+\s(\S+)\s(\d+)\s(\d+)\s.*/,'$1 $2,$3') 为我解析为 Oct 07,2020
  • 使用 moment js 满足您所有的日期时间需求
  • 你可以用这个得到一些接近的东西:new Intl.DateTimeFormat('en-GB', {weekday: 'short', year: '2-digit', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: true}).format(new Date()) 但这不是你的精确格式。如果您需要它,请考虑从组成部分自己构建它。
  • 请不要使用内置解析器,特别是对于不受支持的格式,请参阅Why does Date.parse give incorrect results?。至少在 Safari 中,new Date('2020-10-07 05:21:15') 会产生一个无效的日期。

标签: javascript regex date


【解决方案1】:

试试这个

const date = new Date();

// First option

const time = new Intl.DateTimeFormat('en', { hour: '2-digit', minute: '2-digit', }).format(date);
const dayWord = new Intl.DateTimeFormat('en', { weekday: 'short' }).format(date);
const dayNumber = new Intl.DateTimeFormat('en', { day: 'numeric' }).format(date);
const month = new Intl.DateTimeFormat('en', { month: 'short' }).format(date);
const year = new Intl.DateTimeFormat('en', { year: '2-digit' }).format(date);
console.log(`${dayWord},${dayNumber} ${month}'${year} -${time}`);

// Second option with format to parts method

const formatter = new Intl.DateTimeFormat('en', {
  year: '2-digit',
  day: 'numeric',
  month: 'short',
  weekday: 'short',
  hour: '2-digit', 
  minute: '2-digit'
}).formatToParts(date);

var customDateString = `${formatter[0].value},${formatter[4].value} ${formatter[2].value}'${formatter[6].value} -${formatter[8].value}:${formatter[10].value}${formatter[12].value.toLowerCase()}`;

console.log(customDateString);

【讨论】:

  • 我怎样才能得到时间呢?比如星期三,20 年 10 月 7 日 - 下午 5:21。上午和下午格式的时间@svyatis.Iviv
  • 您可以缩短它,并使用 Intl.DateTimeFormat 的单个实例和 formatToParts method 获取部件来提高效率。
  • @rajrajaji 我已经及时更新了答案
  • 还更新了@RobG 提到的格式到部件方法选项
猜你喜欢
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
相关资源
最近更新 更多