import Foundation
class TimeFormat:NSObject {
//11:02 昨天10:20 前天12:32 3月14日9:23
func DayAndTime(time:String) -> String{
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
if (formatter.dateFromString(time) == nil) {
return ""
}
//得到分享当天的零点
let raw_0 = (time as NSString).substringWithRange(NSMakeRange(0, 10)) + " 00:00:01"
let getTime = formatter.dateFromString(raw_0)!.timeIntervalSince1970
let nowTime = NSDate().timeIntervalSince1970
let hourminuteTime = (time as NSString).substringWithRange(NSMakeRange(11, 5))
var monthTime = (time as NSString).substringWithRange(NSMakeRange(5, 2))
let month = (monthTime as NSString).substringWithRange(NSMakeRange(0, 1))
if month == "0"{
monthTime = (monthTime as NSString).substringWithRange(NSMakeRange(1, 1))
}
var dayTime = (time as NSString).substringWithRange(NSMakeRange(8, 2))
let day = (dayTime as NSString).substringWithRange(NSMakeRange(0, 1))
if day == "0"{
dayTime = (dayTime as NSString).substringWithRange(NSMakeRange(1, 1))
}
let time5 = "\(monthTime)月\(dayTime)日"
let offset = nowTime - getTime
if offset > 259200 {
return time5 + hourminuteTime
}else if offset > 172800 {
return "前天" + hourminuteTime
}else if offset > 86400{
return "昨天" + hourminuteTime
}else{
return hourminuteTime
}
}
//今天 昨天 前天 2月27日
func onlyYearAndmonTh(time:String) -> String{
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
if (formatter.dateFromString(time) == nil) {
return ""
}
//得到分享当天的零点
let raw_0 = (time as NSString).substringWithRange(NSMakeRange(0, 10)) + " 00:00:01"
let getTime = formatter.dateFromString(raw_0)!.timeIntervalSince1970
let nowTime = NSDate().timeIntervalSince1970
var monthTime = (time as NSString).substringWithRange(NSMakeRange(5, 2))
let month = (monthTime as NSString).substringWithRange(NSMakeRange(0, 1))
if month == "0"{
monthTime = (monthTime as NSString).substringWithRange(NSMakeRange(1, 1))
}
let dayTime = (time as NSString).substringWithRange(NSMakeRange(8, 2))
let getNowTime = "\(monthTime)月\(dayTime)日"
let offset = nowTime - getTime
if offset > 259200 {
return getNowTime
}else if offset > 172800 {
return "前天"
}else if offset > 86400{
return "昨天"
}else{
return "今天"
}
}
//只有 小时和分钟
func onlyHourAndMinute(time:String) -> String{
let onlyDayTime = (time as NSString).substringWithRange(NSMakeRange(11, 5))
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
if (formatter.dateFromString(time) == nil) {
return ""
}
//得到分享当天的零点
let raw_0 = (time as NSString).substringWithRange(NSMakeRange(0, 10)) + " 00:00:01"
let getTime = formatter.dateFromString(raw_0)!.timeIntervalSince1970
let nowTime = NSDate().timeIntervalSince1970
var monthTime = (time as NSString).substringWithRange(NSMakeRange(5, 2))
let month = (time as NSString).substringWithRange(NSMakeRange(5, 1))
if month == "0"{
monthTime = (time as NSString).substringWithRange(NSMakeRange(6, 1))
}
var dayTime = (time as NSString).substringWithRange(NSMakeRange(8, 2))
let day = (time as NSString).substringWithRange(NSMakeRange(8, 1))
if day == "0"{
dayTime = (time as NSString).substringWithRange(NSMakeRange(9, 1))
}
let time5 = "\(monthTime)月\(dayTime)日"
let offset = nowTime - getTime
if offset > 259200 {
return time5 + onlyDayTime
}else if offset > 172800 {
return "前天" + onlyDayTime
}else if offset > 86400{
return "昨天" + onlyDayTime
}else{
return time5
}
}
func format_4(time:String) -> (String,String){
let time1 = onlyYearAndmonTh(time)
if (time1 as NSString).length > 2{
let time2 = (time as NSString).substringWithRange(NSMakeRange(8, 1))
var time3 = (time as NSString).substringWithRange(NSMakeRange(0, 7))
let time3_1 = (time3 as NSString).substringWithRange(NSMakeRange(5, 1))
if time3_1 == "0"{
time3 = (time as NSString).substringWithRange(NSMakeRange(0, 5)) + (time as NSString).substringWithRange(NSMakeRange(6, 1))
}
if time2 == "0"{
let time4 = (time as NSString).substringWithRange(NSMakeRange(9, 1)) + "日"
return (time4,time3)
}else{
let time4 = (time as NSString).substringWithRange(NSMakeRange(8, 2)) + "日"
return (time4,time3)
}
}else{
return (time1,"")
}
}
class func TimeLine(raw: String) -> String {
//刚刚 一分钟前 45分钟前 一小时前 18小时前 1天前 50天前 100天前 1111天前 9999天前
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
if (formatter.dateFromString(raw) == nil) {
return ""
}
let getTime = formatter.dateFromString(raw)!.timeIntervalSince1970
let nowTime = NSDate().timeIntervalSince1970
let offset = nowTime - getTime
if offset > 86400 {
let day = Int(offset/86400)
return "\(day)天前"
}else if offset > 3600 {
let hour = Int(offset/3600)
return "\(hour)小时前"
}else if offset > 60 {
let minute = Int(offset/60)
return "\(minute)分钟前"
}else {
return "刚刚"
}
}
//得到日期 2016-08-25
class func getTime(raw: String) -> String {
let time = (raw as NSString).substringWithRange(NSMakeRange(0, 10))
return time
}
}