jquery 从给予的日期字符串中获取年份

quhf5bfb  于 2023-01-25  发布在  jQuery
关注(0)|答案(8)|浏览(123)

我有这种日期格式
二〇一五年一月一日
如何从字符串"Jan 1,2015"中获取年份"2015"?
到目前为止我试过这个

var str = "Jan 1, 2015";
var res = str.substr(1, 7);

但不幸的是,很遗憾没有成功。有什么帮助,想法,线索吗?

yvgpqqbh

yvgpqqbh1#

这可能是最安全的解决方案:

new Date('Jan 1, 2015').getFullYear();  // 2015
klr1opcd

klr1opcd2#

可以使用,分隔符分解字符串:

var res = +'Jan 1, 2015'.split(',')[1];

或与substr

var res = +'Jan 1, 2015'.substr(7),
    res = +'Jan 1, 2015'.substr(-4);
7cwmlq89

7cwmlq893#

如果字符串在该格式中为 always,则这是一个选项:

var str = "Jan 1, 2015";
var year = parseInt(str.split(', ').pop());
alert(year)

str.split(', ')将字符串拆分为如下数组:["Jan 1", "2015"]
然后,.pop返回最后一个值"2015"parseInt显然将其解析为整数。

t5fffqht

t5fffqht4#

或者你可以用一种最复杂的方式!

O O
     °
    \O/
  • 它仅在0年到3999年之间有效字符串而不是日期

Feb 31, 2015是有效字符串,不是有效日期

var reg = /^([JFMASON][abceglnoprtuv]{2}) ([1-9]|[12][0-9]|[3][01]), ([0-9]|[12][0-9]|[123]?[0-9][0-9]{2})$/;

var r;
document.write('<br> :' +  ( (r = 'Feb 31, 2015'.match(reg))  ? r[3] : 'not valid') );
document.write('<br> :' +  ( (r = 'Jan 31, 3015'.match(reg))  ? r[3] : 'not valid') );
document.write('<br> :' +  ( (r = 'Jan 31, 2015'.match(reg))  ? r[3] : 'not valid') );
document.write('<br> :' +  ( (r = 'Jan 31, 1995'.match(reg))  ? r[3] : 'not valid') );
document.write('<br> :' +  ( (r = 'Jan 31, 115'.match(reg))  ? r[3] : 'not valid') );
document.write('<br> :' +  ( (r = 'Jan 31, 15'.match(reg))  ? r[3] : 'not valid') );
document.write('<br> :' +  ( (r = 'Jan 31, 5'.match(reg))  ? r[3] : 'not valid') );
document.write('<br> :' +  ( (r = 'Jan 31, 0'.match(reg))  ? r[3] : 'not valid') );

document.write('<br> :' +  ( (r = 'Jan 31, 4000'.match(reg))  ? r[3] : 'not valid') );
wh6knrhe

wh6knrhe5#

所有其他的解决方案都只是操纵字符串,但如果它真的是一个日期:

var year = new Date("Jan 1, 2015").getFullYear();
//year = 2015
q9yhzks0

q9yhzks06#

您可以使用javaScript日期格式:

var date = new Date(str);
var year = date.getFullYear();

有关更多信息,请查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

wmtdaxz3

wmtdaxz37#

您还可以用途:

var timestamp = Date.parse("Jan 1, 2015");
console.log(timestamp);        //1420052400000

和转换任何类型的日期参数

ou6hu8tu

ou6hu8tu8#

var data = 'Jan 1, 2015';
var data1 = data.split(' ');
alert(data1[2]);

拆分值然后得到最后一个。在您的示例中,在空间中拆分并得到最后一个索引2
您还可以使用pop()
data1.pop()

相关问题