programing

Firebase Firestore 타임스탬프를 날짜(Swift)로 변환하시겠습니까?

powerit 2023. 6. 17. 09:46
반응형

Firebase Firestore 타임스탬프를 날짜(Swift)로 변환하시겠습니까?

날짜를 Firestore 필드에 시간 스탬프로 저장하여 Swift에서 날짜로 변환하려는 경우:

June 19,2018 at 7:20:21 PM UTC-4

다음을 시도했지만 오류가 발생합니다.

let date = Date(timeIntervalSince1970: postTimestamp as! TimeInterval)

오류:

Could not cast value of type 'FIRTimestamp' (0x104fa8b98) to 'NSNumber'

제가 날짜로 변환하고 싶은 이유는 이 날짜 확장을 사용하여 인스타그램 게시물에 표시되는 타임스탬프를 모방할 수 있기 때문입니다.

extension Date {
    func timeAgoDisplay() -> String {
        let secondsAgo = Int(Date().timeIntervalSince(self))

        let minute = 60
        let hour = 60 * minute
        let day = 24 * hour
        let week = 7 * day

        if secondsAgo < minute {
            return "\(secondsAgo) seconds ago"
        } else if secondsAgo < hour {
            return "\(secondsAgo / minute) minutes ago"
        } else if secondsAgo < day {
            return "\(secondsAgo / hour) hours ago"
        } else if secondsAgo < week {
            return "\(secondsAgo / day) days ago"
        }

        return "\(secondsAgo / week) weeks ago"
    }
}

다음 중 하나를 수행합니다.

let date = postTimestamp.dateValue()

또는 할 수 있습니다.

let date = Date(timeIntervalSince1970: postTimestamp.seconds)

타임스탬프 참조 설명서를 참조하십시오.

언급URL : https://stackoverflow.com/questions/51116381/convert-firebase-firestore-timestamp-to-date-swift

반응형