def passedSeconds(self): create = time_parser().parse(self.timestamp) create_utc = (create - create.utcoffset()).replace(tzinfo=None) now_utc = datetime.utcnow() # Always compare UTC time, do NOT compare LOCAL time. # See http://coolshell.cn/articles/5075.html for more details. if now_utc < create_utc: # datetime do not support negative numbers return -1 else: passedSeconds = (now_utc - create_utc).total_seconds() return passedSeconds
def sinceTimeString(self, createTime): create = time_parser().parse(createTime) create_utc = (create - create.utcoffset()).replace(tzinfo=None) now_utc = datetime.utcnow() # Always compare UTC time, do NOT compare LOCAL time. # See http://coolshell.cn/articles/5075.html for more details. passedSeconds = (now_utc - create_utc).seconds # datetime do not support nagetive numbers if now_utc < create_utc: return self.tr("Time travel!") if passedSeconds < 60: return self.tr("%.0f seconds ago") % (passedSeconds) if passedSeconds < 3600: return self.tr("%.0f minutes ago") % (passedSeconds / 60) if passedSeconds < 86400: return self.tr("%.0f hours ago") % (passedSeconds / 3600) return self.tr("%.0f days ago") % (passedSeconds / 86400)
def _sinceTimeString(self, createTime): if not createTime: return create = time_parser().parse(createTime) create_utc = (create - create.utcoffset()).replace(tzinfo=None) now_utc = datetime.utcnow() # Always compare UTC time, do NOT compare LOCAL time. # See http://coolshell.cn/articles/5075.html for more details. passedSeconds = (now_utc - create_utc).seconds # datetime do not support nagetive numbers if now_utc < create_utc: return self.tr("Time travel!") if passedSeconds < 60: return self.tr("%.0f seconds ago") % (passedSeconds) if passedSeconds < 3600: return self.tr("%.0f minutes ago") % (passedSeconds / 60) if passedSeconds < 86400: return self.tr("%.0f hours ago") % (passedSeconds / 3600) return self.tr("%.0f days ago") % (passedSeconds / 86400)