WPS JSA日期时间的填 坑已经都给你们填平了 郑广学JSA880
发布网友
发布时间:2024-10-02 16:23
我来回答
共1个回答
热心网友
时间:2024-10-04 13:28
在WPS JSA中处理日期和时间的困扰已经不再是难题,郑广学JSA880为我们提供了全面的解决方案。接下来,我们将逐步揭示其中的陷阱和正确操作。
首先,让我们看看在局部变量中,日期时间的不同表示形式:
单元格C3中,d2显示为空,而d1和d3则包含值。
重要提示:在获取日期时,必须使用.Value2,因为:
错误做法:d2 = Range("C3").Value,这会导致日期类型丢失,返回空值。
正确做法:d3 = Range("C3").Value2,这样才能确保获取到原始日期值,避免空值问题。
接着,d1的值代表JS时间戳,而d3则是Excel中的时间格式。它们之间的关系是:
JS时间戳是一个整数,以毫秒为单位,比如d1:1,687,276,800,000。
Excel时间是浮点数,日期部分是整数,时间部分是小数,如d3:45,098。
转换时,需要注意它们的起点时间不同:
JS时间戳起点:1970年1月1日8:00(东八区),如2023-6-21与1970-1-1的差为1,687,276,800,000毫秒。
Excel时间起点:1900年1月1日0:00(无时区),如2023-6-21的差为45,098毫秒。
通过计算,我们了解到两者之间的转换公式。例如,45,098毫秒对应1,687,276,800,000毫秒加2,209,190,400,000毫秒。JSA880框架提供了便捷的函数进行转换。
使用new Date()和880的函数,我们可以轻松地处理日期和时间的显示,如:
输出时间戳:d1.getTime() 或 d3.format()。
设置和获取时间的系统方法:getFullYear(), setDate(), setHours()等。
在处理月份时,要注意月份的计算和本地化问题,例如:
var d1 = new Date("2024-6-21"); d1.setMonth(8) 会得到2024-9-21。
最后,JSA880框架的函数库极大地简化了日期时间操作,提供了一站式的解决方案。加入Excel880B JSA学习群,一起探索更多实用技巧吧。