我有这种日期格式二〇一五年一月一日如何从字符串"Jan 1,2015"中获取年份"2015"?到目前为止我试过这个
var str = "Jan 1, 2015"; var res = str.substr(1, 7);
但不幸的是,很遗憾没有成功。有什么帮助,想法,线索吗?
yvgpqqbh1#
这可能是最安全的解决方案:
new Date('Jan 1, 2015').getFullYear(); // 2015
klr1opcd2#
可以使用,分隔符分解字符串:
,
var res = +'Jan 1, 2015'.split(',')[1];
或与substr:
substr
var res = +'Jan 1, 2015'.substr(7), res = +'Jan 1, 2015'.substr(-4);
7cwmlq893#
如果字符串在该格式中为 always,则这是一个选项:
var str = "Jan 1, 2015"; var year = parseInt(str.split(', ').pop()); alert(year)
str.split(', ')将字符串拆分为如下数组:["Jan 1", "2015"]然后,.pop返回最后一个值"2015",parseInt显然将其解析为整数。
str.split(', ')
["Jan 1", "2015"]
.pop
"2015"
parseInt
t5fffqht4#
或者你可以用一种最复杂的方式!
O O ° \O/
Feb 31, 2015是有效字符串,不是有效日期
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') );
wh6knrhe5#
所有其他的解决方案都只是操纵字符串,但如果它真的是一个日期:
var year = new Date("Jan 1, 2015").getFullYear(); //year = 2015
q9yhzks06#
您可以使用javaScript日期格式:
var date = new Date(str); var year = date.getFullYear();
有关更多信息,请查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
wmtdaxz37#
您还可以用途:
var timestamp = Date.parse("Jan 1, 2015"); console.log(timestamp); //1420052400000
和转换任何类型的日期参数
ou6hu8tu8#
var data = 'Jan 1, 2015'; var data1 = data.split(' '); alert(data1[2]);
拆分值然后得到最后一个。在您的示例中,在空间中拆分并得到最后一个索引2您还可以使用pop()data1.pop()
data1.pop()
8条答案
按热度按时间yvgpqqbh1#
这可能是最安全的解决方案:
klr1opcd2#
可以使用
,
分隔符分解字符串:或与
substr
:7cwmlq893#
如果字符串在该格式中为 always,则这是一个选项:
str.split(', ')
将字符串拆分为如下数组:["Jan 1", "2015"]
然后,
.pop
返回最后一个值"2015"
,parseInt
显然将其解析为整数。t5fffqht4#
或者你可以用一种最复杂的方式!
Feb 31, 2015
是有效字符串,不是有效日期wh6knrhe5#
所有其他的解决方案都只是操纵字符串,但如果它真的是一个日期:
q9yhzks06#
您可以使用javaScript日期格式:
有关更多信息,请查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
wmtdaxz37#
您还可以用途:
和转换任何类型的日期参数
ou6hu8tu8#
拆分值然后得到最后一个。在您的示例中,在空间中拆分并得到最后一个索引2
您还可以使用pop()
data1.pop()