Je cherche à savoir comment décider si un timestamp donné se produit aujourd'hui, ou +1 / -1 jours. Essentiellement, j'aimerais faire quelque chose comme ceci (Pseudocode)
IF days_from_today(timestamp) == -1 RETURN 'Yesterday'
ELSE IF days_from_today(timestamp) == 0 RETURN 'Today'
ELSE IF days_from_today(timestamp) == 1 RETURN 'Tomorrow'
ELSE IF days_from_today(timestamp) < 1 RETURN days_from_today(timestamp) + ' days ago'
ELSE RETURN 'In ' + days_from_today(timestamp) + ' ago'
Mais surtout, il faut que ce soit en Swift et j'ai du mal avec les objets NSDate / NSCalendar. J'ai commencé par calculer le décalage horaire comme suit :
let calendar = NSCalendar.currentCalendar()
let date = NSDate(timeIntervalSince1970: Double(timestamp))
let timeDifference = calendar.components([.Second,.Minute,.Day,.Hour],
fromDate: date, toDate: NSDate(), options: NSCalendarOptions())
Cependant, il n'est pas facile de comparer de cette manière, car les .Day
est différent selon l'heure et l'horodatage. En PHP, j'utiliserais simplement mktime pour créer une nouvelle date, basée sur le début de la journée (i.e. mktime(0,0,0)
), mais je ne suis pas sûr de la manière la plus simple de le faire en Swift.
Quelqu'un a-t-il une bonne idée de la manière d'aborder cette question ? Peut-être qu'une extension de NSDate ou quelque chose de similaire serait la meilleure solution ?