📜  格式化日期 js - Javascript (1)

📅  最后修改于: 2023-12-03 15:40:29.013000             🧑  作者: Mango

格式化日期 in JavaScript

在JavaScript中,我们可以使用内置的Date对象来处理日期和时间。 但是,当我们要将其呈现为用户可读的格式时,我们需要对其进行格式化。 在本文中,我们将学习如何使用JavaScript将日期格式化为我们想要的格式。

获取当前日期和时间

要获取当前日期和时间,我们可以使用Date对象的构造函数。

const currentDate = new Date();
console.log(currentDate); // Thu Apr 01 2021 13:56:40 GMT+0800 (中国标准时间)

我们可以使用上面的代码获取当前日期和时间。现在,如果我们想要将它们呈现为用户可读的格式,我们需要将它们格式化。 我们将在下面的章节中详细讨论日期格式。

日期格式化

在JavaScript中,我们可以使用以下字符来格式化日期:

  • 'yyyy': 四位数年份
  • 'yy': 两位数年份
  • 'MM': 月份
  • 'MMM': 缩写月份名称
  • 'MMMM': 月份名称
  • 'dd': 日期
  • 'ddd': 缩写星期几名称
  • 'dddd': 完整星期几名称
  • 'hh': 小时(12小时制)
  • 'HH': 小时(24小时制)
  • 'mm': 分钟
  • 'ss': 秒
  • 'a': 上午或下午

以下是使用这些字符格式化日期和时间的示例代码:

const currentDate = new Date();

// yyyy-MM-dd
const yearMonthDay = `${currentDate.getFullYear()}-${(currentDate.getMonth() + 1).toString().padStart(2, '0')}-${currentDate.getDate().toString().padStart(2, '0')}`;
console.log(yearMonthDay); // 2021-04-01

// yyyy年MM月dd日
const yearMonthDay2 = `${currentDate.getFullYear()}年${(currentDate.getMonth() + 1)}月${currentDate.getDate()}日`;
console.log(yearMonthDay2); // 2021年4月1日

// HH:mm:ss
const time = `${currentDate.getHours().toString().padStart(2, '0')}:${currentDate.getMinutes().toString().padStart(2, '0')}:${currentDate.getSeconds().toString().padStart(2, '0')}`;
console.log(time); // 13:56:40

// hh:mm:ss a
const time2 = `${(currentDate.getHours() % 12).toString().padStart(2, '0')}:${currentDate.getMinutes().toString().padStart(2, '0')}:${currentDate.getSeconds().toString().padStart(2, '0')} ${currentDate.getHours() >= 12 ? '下午' : '上午'}`;
console.log(time2); // 01:56:40 下午
格式化日期字符串

除了格式化当前日期和时间之外,我们还可以使用格式化字符串来格式化给定的日期字符串。

function formatDate(dateString, format) {
  const date = new Date(dateString);
  const year = date.getFullYear();
  const month = (date.getMonth() + 1).toString().padStart(2, '0');
  const day = date.getDate().toString().padStart(2, '0');
  const hours = date.getHours().toString().padStart(2, '0');
  const minutes = date.getMinutes().toString().padStart(2, '0');
  const seconds = date.getSeconds().toString().padStart(2, '0');

  return format
    .replace('yyyy', year)
    .replace('MM', month)
    .replace('dd', day)
    .replace('HH', hours)
    .replace('mm', minutes)
    .replace('ss', seconds);
}

console.log(formatDate('2021-04-01T06:20:00.000Z', 'yyyy-MM-dd')); // 2021-04-01
console.log(formatDate('2021-04-01T16:20:00.000Z', 'yyyy年MM月dd日 HH:mm:ss')); // 2021年04月01日 16:20:00

上面的代码使用format字符串,它会根据其中的字符来替换日期和时间的值,并返回一个格式化的日期字符串。

结论

在JavaScript中,我们可以使用Date对象和格式化字符串来格式化日期和时间。 我们可以使用内置的Date对象类来获取当前日期和时间,然后使用格式化字符串和Date对象实例上可用的方法将其格式化为所需的格式。