javascript - 需要帮助使用 Google SCRIPT 减去时间和日期
问题描述
我在这里有这段代码:
var date = a.created_at_timestamp.substring(0,10)
var time = a.created_at_timestamp.substring(11,19)
这两个值都返回具有这些值的字符串:
date = 2020-05-19 //
Time = 17:00:08
我需要减去 3 个小时,因为它是在 GMT 时间到来并且我在 GMT-3 上。因此,我考虑将它们加在一起,减去三个小时,然后再将它们分开。就像是:
Orig Date: 20/05/19 //
Orig Time: 20:15:19
Time + Date: 20/05/19 20:15 //
Time + Date - 3h: 20/05/19 17:15
New Date: 20/05/19 00:00 //
New Time: 17:15:19
我尝试按照此处其他帖子中的建议将其转换为毫秒,使用公式,其中一个函数会触发添加两个单元格的公式,我可以这样做,但不能将它们分开。另外,如果可能的话,我想在脚本里面做。
有人可以帮我吗?
我是新手,我有点习惯 VBA。从 VBA 中尝试了一些东西,但它们在这里并不适用。
解决方案
Date
与其使用单独的日期和时间字符串,不如创建一个将两者结合起来的新对象可能会更容易。
var dateTime = new Date(a.created_at_timestamp.substring(0,19));
然后,您可以通过执行以下操作减去 3 小时:
var timeOffset = 3 * 60 * 60 * 1000; // 3hrs of millis
var offsetDate = new Date(dateTime.getTime() - timeOffset);
推荐阅读
- r - 使用 mlr-package 构建模型时的自定义性能度量
- javascript - document.getElementById('xs').clicked == true 不起作用
- javascript - main.js:114 未捕获类型错误:无法设置未定义的属性“incart”
- java - 如何编写简单的 JUnit 测试来测试 REST 控制器
- python - Tkinter Canvas 动态调整图像大小
- html - 引导程序中的 2x2 图像网格设置高度/宽度 100%
- matlab - 翻转散点图的矩阵
- office-js - 在共享邮箱上,OfficeJS saveAsync() 返回所有者邮箱不允许的草稿 ID
- wpf - 使用来自源的初始值的双向绑定
- bash - 如何在 bash for 循环的条件部分中使用变量