2017-10-23 2 views
0

Ich versuche etwas ähnliches zu Facebook Post Datum/Zeit zu bekommen. Wie 1 min, 1 Stunde, gestern, Woche vor usw.Wie formatiert man ein Datum wie "5 min", "1 Stunde", "Gestern", "Vor 1 Woche"?

Dies ist die Funktion ist ich dieses Format bekommen bin mit: (Oct-22 17:28 PM)

func convertTime(serverTime: Double) -> String { 
    let serverTime = serverTime 
    let date = Date(timeIntervalSince1970: serverTime) 
    let dateFomatter = DateFormatter() 
    dateFomatter.dateFormat = "MMM-dd HH:mm a" 
    let strDate = dateFomatter.string(from: date) 
    print("This is the post's date: \(strDate)") 

    return strDate 
} 
+1

Lese die "DateFormatter" [docs] (https://developer.apple.com/documentation/foundation/dateformatter/1415848-doesrelativedateformatting), bitte ...? – holex

Antwort

1

versuchen diesen Code

let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
dateFormatter.locale = Locale.init(identifier: "en_GB") 
let before = dateFormatter.date(from: "2017-10-23 10:28:17")! 

//getting the current time 
let now = Date() 

let formatter = DateComponentsFormatter() 
formatter.unitsStyle = .full 
formatter.zeroFormattingBehavior = .dropAll 
formatter.maximumUnitCount = 1 
formatter.allowedUnits = [.year, .month, .weekOfMonth, .day, .hour, .minute] 
formatter.includesApproximationPhrase = true 


let formatString = NSLocalizedString("%@ ago", comment: "e.g. '2 hours ago'") 

let timeString = formatter.string(from: before, to: now) 
+0

vielen Dank, Ihre Lösung hat für mich funktioniert. Ändere einfach das "vorher" auf meine Serverzeit. Jetzt bekomme ich die Zeit so: Die Zeit ist ungefähr 5 Tage Die Zeit ist ungefähr 21 Stunden Die Zeit ist ungefähr 3 Minuten Die Zeit ist ungefähr 3 Minuten –

Verwandte Themen