如何在Google Apps Script中移除日期戳的时间部分
如何在Google Apps Script中移除日期戳的时间部分
嗨,别担心,我明白你现在的困扰——你想要的是只显示日期的戳记,而不是带着5:00:00的完整时间对吧?我来帮你把代码改得简单明了,你只需要替换一小部分内容就行,完全不用头疼复杂的编程逻辑~
你当前用new Date()得到的是包含当前完整时间的日期对象,所以单元格会默认显示日期加时间。我们可以通过两种简单的方式解决:
方法一:设置单元格显示格式(推荐,简单直观)
这种方法不会改变单元格里实际存储的日期值,只是让它只显示年月日部分,之后你如果需要对这个日期做排序、计算之类的操作都没问题。你只需要在设置值的那一行后面加一行格式设置代码:function onEdit(e) { addTimestamp(e); } function addTimestamp(e){ var row = e.range.getRow(); var col = e.range.getColumn(); var width = e.range.getNumRows(); var startRow = 2 ; var ws = e.source.getActiveSheet().getName(); var minDismount = 0 ; if(col == 14 || col == 23 && row >= startRow && ws == "LOTO-A" && e.source.getActiveCell().getValue() > minDismount ){ // 设置带时间的日期值 var targetRange = e.source.getActiveSheet().getRange(row,col+1,width); targetRange.setValue(new Date()); // 新增:把单元格格式改成仅显示年月日 targetRange.setNumberFormat("dd/mm/yyyy"); // 如果你想要其他格式,比如"yyyy/mm/dd",直接替换引号里的内容就好 } }方法二:生成仅含日期的字符串
这种方法是直接把日期转换成只有年月日的字符串再写入单元格,显示出来就是纯日期,但要注意这种方式存储的是文本,没法直接做日期相关的运算:function onEdit(e) { addTimestamp(e); } function addTimestamp(e){ var row = e.range.getRow(); var col = e.range.getColumn(); var width = e.range.getNumRows(); var startRow = 2 ; var ws = e.source.getActiveSheet().getName(); var minDismount = 0 ; // 获取你的脚本时区,也可以手动指定比如"Europe/Paris" var timeZone = Session.getScriptTimeZone(); if(col == 14 || col == 23 && row >= startRow && ws == "LOTO-A" && e.source.getActiveCell().getValue() > minDismount ){ // 把日期格式化成仅年月日的字符串 var dateOnly = Utilities.formatDate(new Date(), timeZone, "dd/mm/yyyy"); e.source.getActiveSheet().getRange(row,col+1,width).setValue(dateOnly); } }
选第一种方法就足够满足你的需求啦,替换完代码保存后,再测试一下,应该就能看到只显示日期的戳记了~
备注:内容来源于stack exchange,提问作者Twogreedy
相关产品推荐
相关产品推荐

