如何在JavaScript中解析datetime字符串的日期部分

How to parse the date portion of a datetime string in JavaScript?

本文关键字:字符串 datetime 日期部 JavaScript      更新时间:2023-09-26

我有这个datetime字符串

Tue, 20 Oct 2015 17:14:47 +0200

我需要从中返回日期部分。换句话说,从它得到date, monthyear

目前我已经完成了:

pub_date = new Date("Tue, 20 Oct 2015 17:14:47 +0200")
day      = pub_date.getDate()
month    = pub_date.getMonth()
year     = pub_date.getYear()

只有day被正确返回。monthyear返回错误的结果。哪种说法更正确?

应该是pub_date.getFullYear()getYear()已弃用。

http://www.w3schools.com/jsref/jsref_getfullyear.asp

同样,月份返回0到11之间的一个数字。您应该创建一个月份数组并访问getMonth的结果。

var months = ["January", "February", "March", "April", "May", "June", "July", 
              "August", "September", "October", "November", "December"];
month = months[pub_date.getMonth()];

或者如果你使用angular,你可以使用内置的日期过滤器

{{ date | format: 'MMMM' }}
https://docs.angularjs.org/api/ng/filter/date

根据文档:

Date.prototype.getMonth ()

根据本地时间返回指定日期中的月份(0-11)。

Date.prototype.getFullYear ()

根据当地时间返回指定日期的年份(4位数表示4位数年)。

所以你需要:

pub_date = new Date("Tue, 20 Oct 2015 17:14:47 +0200")
day      = pub_date.getDate()
month    = pub_date.getMonth() + 1
year     = pub_date.getFullYear()

您究竟期望得到什么样的结果?. getmonth()应该返回9,这是正确的,因为月份的编号是0到11。

使用. getfullyear()而不是getYear(),它应该返回2015。