【问题标题】:GSheets - Time between date and now()GSheets - 日期和现在之间的时间()
【发布时间】:2023-01-25 23:01:26
【问题描述】:
尝试不同的东西和组合,但无法正确处理。时间和日期总是让我明白。
我只是想比较 now() 和日期/时间并显示“2 天 6 小时 30 分钟内”或“3 天 1 小时 20 分钟前”,我猜有人已经这样做了吗?
因此,假设 A 列中的日期是 2023-01-24 10:00,现在是 2023-01-25 11:05,那么 Col B 应该说“1 天 1 小时 5 分钟前”
我试过 duration()、格式化单元格的日期/时间、days(..),但我找不到可靠的方法。
【问题讨论】:
标签:
date
google-sheets
time
【解决方案1】:
您可以尝试的另一件事:
=INT(NOW()-A1)&" d "&TEXT(NOW()-A1,"h hr m min ago")
【解决方案2】:
=NOW()-A1 实际上会计算现在和那个时间之间的差异,但考虑到只有在您进行更改时才会更新时间,而不是逐秒倒计时。您可以每分钟添加一个更新程序,但不能多于此。转到File - Settings并设置On change and every minute:
如果您需要像您提到的那样的特定格式,那么您应该进行计算以添加它们。如果您只需要天、小时、分钟和秒,您可以进行下一个检查和连接:
=LAMBDA(dif,
IF(INT(dif),INT(dif)&" days ","")
&IF(HOUR(dif),HOUR(dif)&" hours ")
&IF(MINUTE(dif),MINUTE(dif)&" minutes ")
&IF(SECOND(dif),SECOND(dif)&" seconds")&" ago")
(Now()-A1)
【解决方案3】:
请尝试:
=TRIM(LAMBDA(y,IF(NOW()-A1<1,"0 days",IF(y=1,y&" "&"day",y&" "&"days")))(DATEDIF(A1,NOW(),"D"))&" "&
LAMBDA(y,IF(y=1,y&" "&"hr",y&" "&"hrs"))(HOUR(NOW()-A1))&" "&
LAMBDA(y,IF(y=1,y&" "&"min",y&" "&"mins"))(MINUTE(NOW()-A1))&" ago")
【解决方案4】:
尝试:
=INDEX(IF(ISDATE_STRICT(A2:A), TRIM(FLATTEN(QUERY(TRANSPOSE(
IFERROR(LAMBDA(a, LAMBDA(x, IF(x=0,,IF(x>1, x&a&"s", x&a)))
(DATEDIF(A2:A, NOW(), {"Y", "YM", "MD"})))({" year", " month", " day"}))),,9^9))), ))