协慌网

登录 贡献 社区

我在哪里可以找到有关在 JavaScript 中格式化日期的文档?

我注意到 JavaScript 的new Date()函数在接受多种格式的日期时非常聪明。

Xmas95 = new Date("25 Dec, 1995 23:15:00")
Xmas95 = new Date("2009 06 12,12:52:39")
Xmas95 = new Date("20 09 2006,12:52:39")

在调用new Date()函数时,我无法在任何地方找到显示所有有效字符串格式的文档。

这用于将字符串转换为日期。如果我们看一下相反的方面,即将日期对象转换为字符串,直到现在我的印象是 JavaScript 没有内置的 API 来将日期对象格式化为字符串。

编者按:以下方法是提问者的企图,关于特定浏览器的工作,但一般工作; 请参阅此页面上的答案以查看一些实际解决方案。

今天,我在日期对象上使用了toString()方法,令人惊讶的是它用于将日期格式化为字符串。

var d1 = new Date();
d1.toString('yyyy-MM-dd');       //Returns "2009-06-29" in Internet Explorer, but not Firefox or Chrome
d1.toString('dddd, MMMM ,yyyy')  //Returns "Monday, June 29,2009" in Internet Explorer, but not Firefox or Chrome

在这里,我找不到任何关于我们可以将日期对象格式化为字符串的方法的文档。

哪个文档列出了Date()对象支持的格式说明符?

答案

我喜欢使用 JavaScript使用日期 来格式化时间和日期的 10 种方法

基本上,你有三种方法,你必须自己组合字符串:

getDate() // Returns the date
getMonth() // Returns the month
getFullYear() // Returns the year

例:

var d = new Date();
var curr_date = d.getDate();
var curr_month = d.getMonth() + 1; //Months are zero based
var curr_year = d.getFullYear();
console.log(curr_date + "-" + curr_month + "-" + curr_year);

Moment.js

它是一个(轻量级)* JavaScript 日期库,用于解析,操作和格式化日期。

var a = moment([2010, 1, 14, 15, 25, 50, 125]);
a.format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Sunday, February 14th 2010, 3:25:50 pm"
a.format("ddd, hA");                       // "Sun, 3PM"

(*)轻量级含义 9.3KB 缩小 + 在尽可能小的设置中进行缩放(2014 年 2 月)

如果您已在项目中使用jQuery UI ,则可以使用内置的 datepicker 方法格式化日期对象:

$.datepicker.formatDate('yy-mm-dd', new Date(2007, 1 - 1, 26));

但是,datepicker 只格式化日期,不能格式化时间。

看一下jQuery UI datepicker formatDate的例子。