Belirli bir zaman damgasının bugün ya da +1/-1 gün içinde gerçekleşip gerçekleşmediğine nasıl karar vereceğim. Esasen, ben Önemlisi da, Swift olması gerekiyor ve ben NSDate/NSCalendar nesnelerle mücadele ediyorumSwift - bir zaman damgasının dün, bugün, yarın veya X gün önce olup olmadığını kontrol edin
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'
bu (sözde kod) Böyle bir şey yapmak istiyorum. Böyle saat farkını çalışma dışarı ile başladı: .Day
gün ve zaman damgası saatine bağlı olarak farklı olduğu için
let calendar = NSCalendar.currentCalendar()
let date = NSDate(timeIntervalSince1970: Double(timestamp))
let timeDifference = calendar.components([.Second,.Minute,.Day,.Hour],
fromDate: date, toDate: NSDate(), options: NSCalendarOptions())
Ancak bu şekilde karşılaştırarak, kolay değildir. PHP'de, günün başlangıcına (yani, mktime(0,0,0)
) dayalı yeni bir tarih oluşturmak için mktime kullanacağım, ancak Swift'de bunu yapmanın en kolay yolu olduğundan emin değilim.
Bu yönteme nasıl yaklaşılacağı konusunda iyi bir fikri olan var mı? Belki de NSDate ya da benzer bir şey için bir uzantısı en iyi olurdu?
teşekkür ederiz! Üst kısım mükemmel görünüyor. Alt kısmı ile, burada 10:00 olabilir, ancak zaman damgası yarın 9 am olabilir, bu yarın 11:00 olsaydı farklı bir sonuç verirdi. Yoksa bunun nasıl çalıştığını anladım mı? – Ben
Harika şeyler, tekrar teşekkürler. Yaptığım tek değişiklik, günler öncesindeki çizgiydi, olumsuzluğu ortadan kaldırmak için bir 'abs' ekleyerek, yani 'geri' \ (abs (gün)) gün önce "' – Ben
Elbette teşekkürler – vadian