Skip to content

Instantly share code, notes, and snippets.

@RickyAvina
Created August 10, 2022 19:09
Show Gist options
  • Save RickyAvina/7708fbf9f4f70d5eb1ef6f17038d49db to your computer and use it in GitHub Desktop.
Save RickyAvina/7708fbf9f4f70d5eb1ef6f17038d49db to your computer and use it in GitHub Desktop.
Time-From Date Formatter (TwitterLike)
func timeFromNow(date: Date) -> String {
let dateTransformed = date.addingTimeInterval(TimeInterval(60))
let diffComponents = Calendar.current.dateComponents([.day, .hour, .minute], from: Date.now, to: dateTransformed)
guard let day = diffComponents.day else {
print("error decoding time")
return ""
}
if day > 0 {
if day == 1 {
return "1 day"
} else {
return "\(day) days"
}
}
guard let hour = diffComponents.hour else {
print("error decoding time")
return ""
}
if hour > 0 {
if hour == 1 {
return "1 hour"
} else {
return "\(hour) hours"
}
}
guard let minute = diffComponents.minute else {
print("error decoding time")
return ""
}
if minute == 1 {
return "1 minute"
} else {
return "\(minute) mins"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment