返回

如何使用 JavaScript 将 JavaScript 日期格式化为 yyyy-mm-dd

javascript

使用 JavaScript 将 JavaScript 日期格式化为 yyyy-mm-dd

问题

大家应该都遇到过这样的场景:你有一个日期,比如 Sun May 11,2014,你需要将它转换成另一种格式,比如 2014-05-11。这个任务听起来很简单,但如果你尝试使用 JavaScript 的 toString() 方法,你可能会发现它并不能满足你的需求。

解决方法

为了将 JavaScript 日期格式化为 yyyy-mm-dd,我们需要采取不同的方法。我们可以使用 getFullYear(), getMonth()getDate() 方法从 JavaScript 日期对象中提取年、月和日。然后,我们可以将这些值连接成 yyyy-mm-dd 格式的字符串。

以下是如何实现它的代码:

function formatDate(date) {
  var year = date.getFullYear();
  var month = date.getMonth() + 1;
  var day = date.getDate();

  return year + '-' + (month < 10 ? '0' + month : month) + '-' + (day < 10 ? '0' + day : day);
}

我们使用 getFullYear(), getMonth()getDate() 方法从 JavaScript 日期对象中提取年、月和日。然后,我们使用连字符将这些值连接起来。我们还检查月份和日期是否小于 10,如果是,我们会在前面加上一个 0,以确保输出始终是 yyyy-mm-dd 格式的。

代码示例

让我们来看一个代码示例:

var date = new Date('Sun May 11,2014');
var formattedDate = formatDate(date);

console.log(formattedDate); // 输出:2014-05-11

在上面的示例中,我们创建了一个新的 JavaScript 日期对象,并将其格式化为 yyyy-mm-dd。输出将是 2014-05-11

常见问题解答

1. 为什么我的 toString() 方法不起作用?

toString() 方法将 JavaScript 日期对象转换为字符串,但它不会将日期格式化为 yyyy-mm-dd。它将日期格式化为一个更详细的格式,如 Sun May 11 2014 00:00:00 GMT+0800 (China Standard Time)

2. 如何将 JavaScript 日期格式化为其他格式?

你可以使用上面讨论的方法来格式化 JavaScript 日期为任何你想要的格式。只需修改连接字符串即可。例如,要格式化为 dd/mm/yyyy,你可以使用以下连接字符串:

return day + '/' + (month < 10 ? '0' + month : month) + '/' + year;

3. 如何从 JavaScript 日期中提取年、月和日?

你可以使用 getFullYear(), getMonth()getDate() 方法从 JavaScript 日期对象中提取年、月和日。

4. 如何将字符串转换为 JavaScript 日期?

你可以使用 Date.parse() 方法将字符串转换为 JavaScript 日期。

5. 如何创建新的 JavaScript 日期对象?

你可以使用 new Date() 方法创建一个新的 JavaScript 日期对象。

结论

JavaScript 中没有直接的方法可以将日期格式化为 yyyy-mm-dd。但是,我们可以使用 getFullYear(), getMonth()getDate() 方法提取年、月和日,然后将它们连接起来以创建所需的格式。