計算指定時間與當前的時間差 比如,3天前、10分鐘前
計算指定時間與當前的時間差 比如,3天前、10分鐘前(這個在專案中經常遇到,所以記錄了下來)
以下是實現方法:
/**
* 計算指定時間與當前的時間差
* @param compareDate 某一指定時間
* @return 多少(秒or分or天or月or年)+前 (比如,3天前、10分鐘前)
*/
+(NSString *) compareCurrentTime:(NSDate*) compareDate
//
{
NSTimeInterval timeInterval = [compareDate timeIntervalSinceNow
timeInterval = -timeInterval;
long temp = 0;
NSString *result;
if (timeInterval < 60) {
result = [NSStringstringWithFormat:@"剛剛"];
}
else if((temp = timeInterval/60) <60){
result = [NSStringstringWithFormat:@"%d分前",temp];
}
else if((temp = temp/60
result = [NSStringstringWithFormat:@"%d小前",temp];
}
else if((temp = temp/24) <30){
result = [NSStringstringWithFormat:@"%d天前",temp];
}
else if((temp = temp/30) <12){
result = [NSStringstringWithFormat:@"%d月前",temp];
}
else{
temp = temp/12
result = [NSStringstringWithFormat:@"%d年前",temp];
}
return result;
}
以下是NSDate中的常用方法:
/**
- (id)initWithTimeInterval:(NSTimeInterval)secs sinceDate:(NSDate *)refDate;
初始化為以refDate為基準,然後過了secs秒的時間
- (id)initWithTimeIntervalSinceNow:(NSTimeInterval)secs;
初始化為以當前時間為基準,然後過了secs秒的時間
- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)refDate;
以refDate為基準時間,返回例項儲存的時間與refDate的時間間隔
- (NSTimeInterval)timeIntervalSinceNow;
以當前時間(Now)為基準時間,返回例項儲存的時間與當前時間(Now)的時間間隔
- (NSTimeInterval)timeIntervalSince1970;
以1970/01/01 GMT為基準時間,返回例項儲存的時間與1970/01/01 GMT的時間間隔
- (NSTimeInterval)timeIntervalSinceReferenceDate;
以2001/01/01 GMT為基準時間,返回例項儲存的時間與2001/01/01 GMT的時間間隔
+ (NSTimeInterval)timeIntervalSinceReferenceDate;
*/
//秒
// - (NSTimeInterval)timeIntervalSinceNow;
// 以當前時間(Now)為基準時間,返回例項儲存的時間與當前時間(Now)的時間間隔