Excel NOW()函数在不同设备/浏览器中返回时间不一致的技术咨询
Excel NOW()函数在不同设备/浏览器中返回时间不一致的技术咨询
嘿,我完全懂你遇到的这个糟心事——存在OneDrive里的Excel表,用=NOW()做实时计算,嵌入网页后,Windows上显示本地时间,iPhone和Mac却显示UTC,导致计算结果没法统一。这其实是OneDrive嵌入Excel时的时区渲染差异问题,不过咱们不用宏也不用外部链接,用Excel自带的函数就能搞定,正好符合你的要求!
方案一:强制全设备显示UTC时间(推荐)
如果更倾向统一用UTC,分两种情况处理:
- 如果你用的是Excel 365/2021及以后的新版本,直接把
=NOW()换成这个公式就行:
这个函数是微软专门用来获取UTC时间的,不管访问者用什么设备、在哪个时区,显示的都是标准UTC时间,完美解决一致性问题。=NOW(UTC) - 要是你用的是旧版Excel,没有
NOW(UTC)这个函数,就用下面这个公式计算UTC时间:=NOW() - (TIMEZONE()/24)TIMEZONE()会返回当前时区和UTC的小时差(比如国内东八区返回8),用当前时间减去这个差值(除以24转成天),就能得到精准的UTC时间。
方案二:强制全设备显示访问者的本地时间
如果想让所有用户都看到自己的本地时间,其实=NOW()本身的逻辑是返回本地时间,但OneDrive的嵌入渲染在不同设备上有偏差。咱们可以通过格式化单元格来强化这个逻辑:
- 选中用了
=NOW()的单元格,右键点击「设置单元格格式」 - 切换到「数字」选项卡,选「自定义」,输入你想要的时间格式,比如
yyyy-mm-dd hh:mm:ss 本地时间 - 保存文件同步到OneDrive后,嵌入的网页会优先按照访问者的本地时区来渲染时间,尽量避免显示差异。
另外要提醒下,你不用改Excel生成的iframe代码,所有逻辑都在Excel文件里处理,只要文件同步到OneDrive,嵌入的页面就会自动更新成你设置好的时间显示规则。
备注:内容来源于stack exchange,提问作者Jeremy Selig
相关产品推荐
相关产品推荐

