两个时间间隔ios组件swift 3之间的差异
我有两个时间间隔基本上我想转换找出它们之间的差异这是我的代码。但是,它不起作用两个时间间隔ios组件swift 3之间的差异,ios,date,swift3,nstimeinterval,Ios,Date,Swift3,Nstimeinterval,我有两个时间间隔基本上我想转换找出它们之间的差异这是我的代码。但是,它不起作用 func dateformatter(date:Double) -> String { let timeElapsed:TimeInterval = TimeInterval(Int(date)) let timeNow:TimeInterval = TimeInterval(integerLiteral: Int64(Date().timeIntervalSince1970*1000))
func dateformatter(date:Double) -> String {
let timeElapsed:TimeInterval = TimeInterval(Int(date))
let timeNow:TimeInterval = TimeInterval(integerLiteral: Int64(Date().timeIntervalSince1970*1000))
let date2:Date = Date(timeIntervalSince1970: timeElapsed )
let date1:Date = Date(timeIntervalSince1970: timeNow )
let calender:Calendar = Calendar.current
let components:DateComponents = calender.dateComponents([.year, .month, .day, .hour, .minute], from: date1, to: date2)
var returnString:String = ""
print(components.second)
if components.second! < 60 {
returnString = "Just Now"
}else if components.minute! >= 1{
returnString = String(describing: components.minute) + " min ago"
}else if components.hour! >= 1{
returnString = String(describing: components.hour) + " hour ago"
}else if components.day! >= 1{
returnString = String(describing: components.day) + " days ago"
}else if components.month! >= 1{
returnString = String(describing: components.month)+" month ago"
}else if components.year! >= 1 {
returnString = String(describing: components.year)+" year ago"
}
return returnString
}
func日期格式化程序(日期:双精度)->字符串{
让时间流逝:时间间隔=时间间隔(整数(日期))
让timeNow:TimeInterval=TimeInterval(整数文件:Int64(日期().timeIntervalSince1970*1000))
让date2:Date=Date(时间间隔自1970年起:时间已过)
让date1:Date=Date(时间间隔1970:timeNow)
让日历:Calendar=Calendar.current
让组件:DateComponents=Calendar.DateComponents([.year、.month、.day、.hour、.minute],从:date1到:date2)
var returnString:String=“”
打印(组件。秒)
如果组件数小于60秒{
returnString=“刚才”
}如果components.minute!>=1,则为else{
returnString=String(描述:components.minute)+“min-ago”
}如果components.hour!>=1,则为else{
returnString=String(描述:components.hour)+“小时前”
}如果components.day!>=1,则为else{
returnString=String(描述:components.day)+“天以前”
}如果components.month!>=1,则为else{
returnString=String(描述:components.month)+“月前”
}否则,如果components.year!>=1{
returnString=String(描述:components.year)+“一年前”
}
返回字符串
}
无需在函数开始时进行所有转换Date(timeIntervalSince1970:)
接受NSTimeInterval
,但是,对于double
,它只是一个typealias
另外,由于您的第一个if
语句检查seconds
,因此需要将.seconds
包含到组件参数列表中
您可以执行以下操作:
func dateformatter(date: Double) -> String {
let date1:Date = Date() // Same you did before with timeNow variable
let date2: Date = Date(timeIntervalSince1970: date)
let calender:Calendar = Calendar.current
let components: DateComponents = calender.dateComponents([.year, .month, .day, .hour, .minute, .second], from: date1, to: date2)
print(components)
var returnString:String = ""
print(components.second)
if components.second! < 60 {
returnString = "Just Now"
}else if components.minute! >= 1{
returnString = String(describing: components.minute) + " min ago"
}else if components.hour! >= 1{
returnString = String(describing: components.hour) + " hour ago"
}else if components.day! >= 1{
returnString = String(describing: components.day) + " days ago"
}else if components.month! >= 1{
returnString = String(describing: components.month)+" month ago"
}else if components.year! >= 1 {
returnString = String(describing: components.year)+" year ago"
}
return returnString
}
func日期格式化程序(日期:双精度)->字符串{
让date1:Date=Date()//与之前使用timeNow变量所做的相同
let Date 2:Date=日期(时间间隔自1970年起:日期)
让日历:Calendar=Calendar.current
让组件:DateComponents=Calendar.DateComponents([.year、.month、.day、.hour、.minute、.second],从:date1到:date2)
打印(组件)
var returnString:String=“”
打印(组件。秒)
如果组件数小于60秒{
returnString=“刚才”
}如果components.minute!>=1,则为else{
returnString=String(描述:components.minute)+“min-ago”
}如果components.hour!>=1,则为else{
returnString=String(描述:components.hour)+“小时前”
}如果components.day!>=1,则为else{
returnString=String(描述:components.day)+“天以前”
}如果components.month!>=1,则为else{
returnString=String(描述:components.month)+“月前”
}否则,如果components.year!>=1{
returnString=String(描述:components.year)+“一年前”
}
返回字符串
}
无需在函数开始时进行所有转换Date(timeIntervalSince1970:)
接受NSTimeInterval
,但是,对于double
,它只是一个typealias
另外,由于您的第一个if
语句检查seconds
,因此需要将.seconds
包含到组件参数列表中
您可以执行以下操作:
func dateformatter(date: Double) -> String {
let date1:Date = Date() // Same you did before with timeNow variable
let date2: Date = Date(timeIntervalSince1970: date)
let calender:Calendar = Calendar.current
let components: DateComponents = calender.dateComponents([.year, .month, .day, .hour, .minute, .second], from: date1, to: date2)
print(components)
var returnString:String = ""
print(components.second)
if components.second! < 60 {
returnString = "Just Now"
}else if components.minute! >= 1{
returnString = String(describing: components.minute) + " min ago"
}else if components.hour! >= 1{
returnString = String(describing: components.hour) + " hour ago"
}else if components.day! >= 1{
returnString = String(describing: components.day) + " days ago"
}else if components.month! >= 1{
returnString = String(describing: components.month)+" month ago"
}else if components.year! >= 1 {
returnString = String(describing: components.year)+" year ago"
}
return returnString
}
func日期格式化程序(日期:双精度)->字符串{
让date1:Date=Date()//与之前使用timeNow变量所做的相同
let Date 2:Date=日期(时间间隔自1970年起:日期)
让日历:Calendar=Calendar.current
让组件:DateComponents=Calendar.DateComponents([.year、.month、.day、.hour、.minute、.second],从:date1到:date2)
打印(组件)
var returnString:String=“”
打印(组件。秒)
如果组件数小于60秒{
returnString=“刚才”
}如果components.minute!>=1,则为else{
returnString=String(描述:components.minute)+“min-ago”
}如果components.hour!>=1,则为else{
returnString=String(描述:components.hour)+“小时前”
}如果components.day!>=1,则为else{
returnString=String(描述:components.day)+“天以前”
}如果components.month!>=1,则为else{
returnString=String(描述:components.month)+“月前”
}否则,如果components.year!>=1{
returnString=String(描述:components.year)+“一年前”
}
返回字符串
}
只是一个提示,您的逻辑中存在一个错误,使得函数在任何情况下都返回“刚才”。下面是修改后的代码:
func timeElapsed(date: Date) -> String {
let date1:Date = date
let date2: Date = Date() // Same you did before with timeNow variable
let calender:Calendar = Calendar.current
let components: DateComponents = calender.dateComponents([.year, .month, .day, .hour, .minute, .second], from: date1, to: date2)
print(components)
var returnString:String = ""
print(components.second!)
if components.second! < 60 {
returnString = "Just Now"
}
if components.minute! > 1{
returnString = String(describing: components.minute!) + " mins ago"
}
else if components.minute! == 1 {
returnString = "A minute ago"
}
if components.hour! > 1{
returnString = String(describing: components.hour!) + " hours ago"
}
else if components.hour == 1 {
returnString = "An hour ago"
}
if components.day! > 1{
returnString = String(describing: components.day!) + " days ago"
}
else if components.day! == 1 {
returnString = "Yesterday"
}
if components.month! > 1{
returnString = String(describing: components.month!)+" months ago"
}
else if components.month! == 1 {
returnString = "A month ago"
}
if components.year! > 1 {
returnString = String(describing: components.year!)+" years ago"
}
else if components.year! == 1 {
returnString = "A year ago"
}
return returnString
}
func timeappeased(日期:date)->字符串{
让date1:Date=日期
让date2:Date=Date()//与之前使用timeNow变量所做的相同
让日历:Calendar=Calendar.current
让组件:DateComponents=Calendar.DateComponents([.year、.month、.day、.hour、.minute、.second],从:date1到:date2)
打印(组件)
var returnString:String=“”
打印(组件。秒!)
如果组件数小于60秒{
returnString=“刚才”
}
如果组件为0.5分钟!>1{
returnString=String(描述:components.minute!)+“分钟前”
}
否则,如果components.minute!==1{
returnString=“一分钟前”
}
如果0.1小时!>1{
returnString=String(描述:components.hour!)+“小时前”
}
如果components.hour==1,则为else{
returnString=“一小时前”
}
如果组件数为1.day!>1{
returnString=String(描述:components.day!)+“天以前”
}
否则,如果components.day!==1{
returnString=“昨天”
}
如果组件数.month!>1{
returnString=String(描述:components.month!)+“月前”
}
否则,如果components.month!==1{
returnString=“一个月前”
}
如果