所以从我的SQL查询中我收到:FRI DEC 13 1991 00:00:00 GMT + 0100(CET)作为日期结果。但我想要的只是当前几年的用户年龄。反正有计算吗?或者我可以使用任何nom扩展吗?谢谢你的时间。
答案 0 :(得分:0)
您可以像这样使用Javascript Date对象:
var sqlDate = new Date('FRI DEC 13 1991 00:00:00 GMT+0100 (CET)');
//log year
console.log(sqlDate.getFullYear());
var intPersonYOB = sqlDate.getFullYear()
要对year
执行某些操作,您可以创建一个新的Date
对象,并按如下方式获取当前年份,以便您可以使用它进行一些数学运算:
var currentDate = new Date();
var currentYear = currentDate.getFullYear();
var intPersonAge = currentYear - intPersonYOB;
console.log(intPersonAge);`
这应该足以让他的年龄
答案 1 :(得分:0)
SELECT DATEDIFF(day,'olddate','recentdate') AS AGE FROM your_table;
返回的值是AGE。使用您拥有的任何日期格式,但这是您的问题的SQL查询
答案 2 :(得分:0)
函数bellow将按字符串返回age。您可以使用相同的方法。
ar str = 'FRI DEC 13 1991 00:00:00 GMT+0100 (CET)';
age = getAge(str);
function getAge(str) {
var matches = str.match(/[a-z]{3} ([a-z]{3}) (\d{1,2}) (\d{4})/i);
str = matches[3] + '-';
switch (matches[1]) {
case 'JAN':
str += '01-';
break;
case 'FEB':
str += '02-';
break;
case 'MAR':
str += '03-';
break;
case 'APR':
str += '04-';
break;
case 'MAY':
str += '05-';
break;
case 'JUN':
str += '06-';
break;
case 'JUL':
str += '07-';
break;
case 'AUG':
str += '08-';
break;
case 'SEP':
str += '09-';
break;
case 'OCT':
str += '10-';
break;
case 'NOV':
str += '11-';
break;
case 'DEC':
str += '12-';
break;
}
str += parseInt(matches[2]) < 10 ? '0' + matches[2] : matches[2];
var birthDate = new Date(str);
var nowDate = new Date();
return nowDate.getFullYear() - 1 - birthDate.getFullYear() + (
birthDate.getMonth() < nowDate.getMonth() ? 1 :
birthDate.getMonth() == nowDate.getMonth() ?
birthDate.getDate() <= nowDate.getDate() ? 1 : 0
: 0
);
}