获得一年日期给予串
我有这样的日期格式获得一年日期给予串
2015年1月1日
我怎样才能获得年度“2015”从字符串“2015年1月1日“?
到目前为止,我想这
var str = "Jan 1, 2015";
var res = str.substr(1, 7);
但遗憾的是并没有黯然工作。任何帮助,想法,线索请吗?
这可能是最安全的解决方案:
new Date('Jan 1, 2015').getFullYear(); // 2015
如果字符串总是在格式,这是一个选项:
var str = "Jan 1, 2015";
var year = parseInt(str.split(', ').pop());
alert(year)
str.split(', ')
拆分串成这样的阵列:["Jan 1", "2015"]
然后,.pop
返回最后一个值,"2015"
,和parseInt
明显解析,作为一个整数。
var data = 'Jan 1, 2015';
var data1 = data.split(' ');
alert(data1[2]);
拆分值然后得到最后一个。 在您的例子分割空间和获得最后指数是2
你也可以使用pop()方法
data1.pop()
请解释投票 – guradio
你可以使用JavaScript日期格式:
var date = new Date(str);
var year = date.getFullYear();
欲了解更多的相关信息看 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
或者你可以使用一个最复杂办法 !
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'));
用'[abceglnoprtuv]'替换:'[anebarprayunulugepctov]'。在chartacter类中不需要重复。 – Cerbrus
@Cerbrus是的,我忘记了!完成! – Anonymous0day
好多了! :d – Cerbrus
您也可以使用 VAR时间戳= Date.parse( “2015年1月1日”); console.log(timestamp); // 1420052400000 并转换任何类型的日期参数
说实话,迄今为止,这是唯一正确的解决方案。 – Cerbrus
不是**不安全。日期不是标准格式。 –
@SalmanA:它确实可行 – Cerbrus