26 lines
780 B
Python
26 lines
780 B
Python
|
|
# services/time_utils.py
|
|||
|
|
"""
|
|||
|
|
时间辅助函数。
|
|||
|
|
|
|||
|
|
刻意不依赖 flask / db / models,避免被 services.db_ingest 和 routes.api
|
|||
|
|
互相引用时产生循环导入。
|
|||
|
|
"""
|
|||
|
|
from datetime import datetime
|
|||
|
|
|
|||
|
|
|
|||
|
|
def calculate_offset(latest_time_str):
|
|||
|
|
"""
|
|||
|
|
计算时间滞后天数
|
|||
|
|
用于前端展示设备数据是否过时
|
|||
|
|
"""
|
|||
|
|
if not latest_time_str or latest_time_str == "N/A":
|
|||
|
|
return "从未同步"
|
|||
|
|
try:
|
|||
|
|
# 兼容处理 2026_01_13 和 2026-01-13 格式
|
|||
|
|
clean = str(latest_time_str).split()[0].replace('_', '-')
|
|||
|
|
target = datetime.strptime(clean, "%Y-%m-%d").date()
|
|||
|
|
diff = (datetime.now().date() - target).days
|
|||
|
|
return "当天" if diff == 0 else f"滞后 {diff} 天"
|
|||
|
|
except:
|
|||
|
|
return "时间解析失败"
|