第一種方式:JavaScript實(shí)現(xiàn)
后臺(tái)返回的生日格式是:1995-12-21
getAge = (birthday) => {
let age;
const birthdayArr = birthday.split('-');
const birthdayYear = birthdayArr[0];
const birthdayMonth = birthdayArr[1];
const birthdayDay = birthdayArr[2];
const today = new Date();
const nowYear = today.getFullYear();
const nowMonth = today.getMonth() + 1;
const nowDay = today.getDate();
if (nowYear === birthdayYear) {
age = 0; // 同年 則為0歲
} else {
const ageDiff = nowYear - birthdayYear; // 年之差
if (ageDiff > 0) {
if (nowMonth === birthdayMonth) {
const dayDiff = nowDay - birthdayDay; // 日之差
if (dayDiff < 0) {
age = ageDiff - 1;
} else {
age = ageDiff;
}
} else {
const monthDiff = nowMonth - birthdayMonth; // 月之差
if (monthDiff < 0) {
age = ageDiff - 1;
} else {
age = ageDiff;
}
}
} else {
age = '未知'; // 返回-1 表示出生日期輸入錯(cuò)誤 晚于今天
}
}
return age; // 返回周歲年齡
}
第二種方式:React Native-moment實(shí)現(xiàn)
getAge = (birthday) => {
const text = moment(birthday, 'YYYY-MM-DD').fromNow();
let age = parseInt(text, 10); // 注意:parseInt(string, radix);第二個(gè)參數(shù)不能省略,否則會(huì)報(bào)Lint錯(cuò)誤
if (isNaN(age)) {
age = '未知';
}
return age;
}
日期格式化
moment().format('MMMM Do YYYY, h:mm:ss a'); // 十二月 12日 2016, 4:00:55 下午
moment().format('dddd'); // 星期一
moment().format("MMM Do YY"); // 12月 12日 16
moment().format('YYYY [escaped] YYYY'); // 2016 escaped 2016
moment().format(); // 2016-12-12T16:00:55+08:00
相對(duì)時(shí)間
moment("20111031", "YYYYMMDD").fromNow(); // 5 年前
moment("20120620", "YYYYMMDD").fromNow(); // 4 年前
moment().startOf('day').fromNow(); // 16 小時(shí)前
moment().endOf('day').fromNow(); // 8 小時(shí)內(nèi)
moment().startOf('hour').fromNow(); // 1 分鐘前
日歷時(shí)間
moment().subtract(10, 'days').calendar(); // 2016年12月2日
moment().subtract(6, 'days').calendar(); // 上周二下午4點(diǎn)整
moment().subtract(3, 'days').calendar(); // 上周五下午4點(diǎn)整
moment().subtract(1, 'days').calendar(); // 昨天下午4點(diǎn)整
moment().calendar(); // 今天下午4點(diǎn)整
moment().add(1, 'days').calendar(); // 明天下午4點(diǎn)整
moment().add(3, 'days').calendar(); // 本周四下午4點(diǎn)整
moment().add(10, 'days').calendar(); // 2016年12月22日
多語(yǔ)言支持
moment().format('L'); // 2016-12-12
moment().format('l'); // 2016-12-12
moment().format('LL'); // 2016年12月12日
moment().format('ll'); // 2016年12月12日
moment().format('LLL'); // 2016年12月12日下午4點(diǎn)00分
moment().format('lll'); // 2016年12月12日下午4點(diǎn)00分
moment().format('LLLL'); // 2016年12月12日星期一下午4點(diǎn)00分
moment().format('llll');// 2016年12月12日星期一下午4點(diǎn)00分