1.傳入的值是一個秒的時間戳,要求當(dāng)返回時間距離現(xiàn)在在24個小時之內(nèi)蕾殴,顯示為多少小時或多少分鐘之前普办,大于24個小時后直接顯示年月日時分秒。
//timestamp.js
function timestamp(createdAt) {
const date = new Date();
const currentTimestamp = date.getTime(); //獲取當(dāng)前時間的時間戳
const result = (currentTimestamp - createdAt * 1000) / (1000 * 60);//兩個時間戳之間相隔的分鐘數(shù)
if (result > 24 * 60) {
this.createTime = this.timestampChangeData(createdAt);
} else if (result > 60 && result < 24 * 60) {
this.createTime = Math.floor(result / 60) + '小時前';
} else {
this.createTime = Math.floor(result) + '分鐘前';
}
return this.createTime;
}
// 時間戳轉(zhuǎn)日期
timestampChangeData = (da) => {
const times = new Date(da * 1000);
const year = times.getFullYear();
const month = times.getMonth() + 1;
const day = times.getDate();
const hour = times.getHours();
const minutes = times.getMinutes();
const seconds = times.getSeconds();
return `${year}-${this.add0(month)}-${this.add0(day)} ${this.add0(hour)
}:${this.add0(minutes)}:${this.add0(seconds)}`;
};
// 補(bǔ)0
add0 = number => number < 10 ? `0${number}` : number;
消息列表:
//messageItem.js
render() {
const {data} = this.props;
const createdAt = get(data, 'item.created_at');
return (
<Text>{timestamp(createdAt)}</Text>
);
}
}
2.傳入的兩個值分別是開始和結(jié)束的時間戳舱痘,要求實現(xiàn)
XXXX年XX月XX日 周X XX:XX:XX - XX:XX:XX (X小時)效果
import moment from 'moment';
render() {
const time = this.timestampStringData(begin, end);
return(
<Text>{time}</Text>
)
}
// 時間戳轉(zhuǎn)日期
timestampStringData = (begin, end) => {
const timesBegin = moment.unix(begin);
const timesEnd = moment.unix(end);
const week = timesBegin.day();
const data = `${timesBegin.format(ext('orderDateFormat'))} ${this.changeWeek(week)}`;
const time = `${timesBegin.format(ext('orderMinuteFormat'))} - ${timesEnd.format(ext('orderMinuteFormat'))}`;
const hours = stringFormat(ext('resultHour'), (timesEnd.diff(timesBegin, 'minutes') * 1.0 / 60));
return `${data} ${time} (${hours})`;
};
changeWeek = (week) => {
let weekDay = '';
const weekDayArray = [ext('sunday'), ext('monday'), ext('tuesday'), ext('wednesday'),
ext('thursday'), ext('friday'), ext('saturday')];
weekDay = weekDayArray[week];
return weekDay;
}
// 時間戳計算相隔小時數(shù)
getHours = (begin, end) => {
const dateTime = (end - begin) * 1000;
const leave = dateTime % (24 * 3600 * 1000);
const hours = leave / (3600 * 1000);
return hours;
}