오늘 주어진 타임 스탬프가 발생하는지 또는 +1/-1 일인지를 결정하는 방법을 찾으려합니다. 기본적으로, 나는 결정적으로, 비록 그것이 스위프트에 있어야하고 내가있는 NSDate/NSCalendar 객체와 사투를 벌인거야Swift - 타임 스탬프가 어제, 오늘, 내일 또는 X 일 전인 지 확인하십시오.
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'
이 (의사 코드) 같은 것을 할 싶습니다. 나는이 같은 시간 차이를 운동을 시작하십시오 .Day
하루와 타임 스탬프의 시간에 따라 다르기 때문에
let calendar = NSCalendar.currentCalendar()
let date = NSDate(timeIntervalSince1970: Double(timestamp))
let timeDifference = calendar.components([.Second,.Minute,.Day,.Hour],
fromDate: date, toDate: NSDate(), options: NSCalendarOptions())
그러나이 방법으로 비교, 쉬운 일이 아니다. PHP에서 mktime을 사용하여 오늘 날짜 (즉, mktime(0,0,0)
)를 기준으로 새로운 날짜를 만들었지 만, Swift에서 가장 쉬운 방법은 확실하지 않습니다.
아무에게도이 접근 방법에 대한 좋은 아이디어가 있습니까? 아마도 NSDate 나 비슷한 것이 가장 좋을까요?
감사합니다! 상단 부분이 완벽하게 보입니다. 아래쪽 부분은 10 시가 될 수 있지만 내일 오전 9 시가 될 수 있습니다. 내일 오전 11 시가되면 결과가 달라집니다. 아니면 내가 어떻게 작동하는지 잘못 이해 했습니까? – Ben
좋은 물건, 다시 고마워. 내가 만든 유일한 변화는 음수를 없애기 위해 'abs'를 덧붙여서 며칠 전이었습니다.'return "\ (abs (day)) days ago"' – Ben
물론 감사합니다 .-) – vadian