- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经从这个社区尝试了很多,但似乎没有针对我的案例的超特定场景。
基本上我有一个格式为 yyyy-mm-dd
的字符串。我使用日期方法来调整它并在日期上添加时间以使其更具体。我想将其转换为时间戳,同时忽略客户端计算机的当前时区(或使用 UTC 时区)。
我有这个代码:
function getTimestampRange(sparams, eparams){
sparams = "2018-11-12", eparams = "2018-11-13"; //sample param values
const start = sparams.split("-");
const end = eparams.split("-");
const startDate = new Date(start[0], start[1] - 1, start[2]);
const endDate = new Date(end[0], end[1] - 1, end[2]);
endDate.setHours(23);
endDate.setMinutes(59);
endDate.setSeconds(59);
//startDate is 2018-11-12 00:00:00 and endDate is 2018-11-13 23:59:59
const startTS = startDate.getTime() / 1000;
const endTS = endDate.getTime() / 1000;
return [startTS, endTS]
}
这一切都很好,但问题是,我正在获取相对于我计算机时区的时间戳。 (格林威治标准时间 + 9)。所以我的纪元是 1970-01-01 的第 9 个小时。这不是我需要的。我需要 GMT+0 UTC 时间戳。
在这种情况下,我会得到 1541948400
和 1542121199
,分别是开始和结束;我应该在哪里得到 1541980800
和 1542153599
。
久达斋
最佳答案
这里有两个选择...
使用 Date.UTC
构建 UTC 时间戳
const startDate = Date.UTC(start[0], start[1] - 1, start[2]) // a timestamp
const endDate = Date.UTC(end[0], end[1] - 1, end[2], 23, 59, 59) // a timestamp
注意:Date.UTC()
生成以毫秒为单位的时间戳,而不是Date
实例。由于您可以像上面那样设置小时、分钟和秒,因此您不再需要操纵它们。
使用符合 ISO 8601 standard 的现有日期字符串作为 Date
构造函数的唯一参数。
这得益于 this particular nuance ...
Support for ISO 8601 formats differs in that date-only strings (e.g. "1970-01-01") are treated as UTC, not local.
const startDate = new Date(sparams)
const endDate = new Date(eparams)
Parsing ISO 8601从 v9 开始,所有体面的浏览器和 IE 都应该支持。由于这依赖于特定的“功能”,可能会或可能不会在客户端中实现,因此此方法存在风险因素。
对于您的结束日期,如果进行解析,您可以轻松地将时间和时区部分附加到日期字符串,而不是使用小时、分钟和秒值来操作日期对象。例如
const endDate = new Date(`${eparams}T23:59:59Z`)
或者,使用 Date.prototype.setUTCHours()
...
const endDate = new Date(eparams)
endDate.setUTCHours(23, 59, 59)
关于javascript - 使用 UTC/GMT+0 作为忽略本地时区纪元的纪元从特定日期获取当前时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53273046/
在 /usr/share/lib/zoneinfo 下 我可以看到以下 4 种不同类型的 GMT 信息 GMT GMT+0 GMT-0 GMT0 这 4 种 GMT 区域时间之间有什么区别吗?如果是这
我有这样的输入格式,我需要将其转换为 GMT 格式: $input = array( "gmt" => "+7", "datetime" => "2017-
我尝试了以下代码,应该允许我将时间传递作为参数转换为一个多一小时 (GMT+1) 的字符串。 但我总是得到与我对象时间相同的时间 public static String getFormattedTi
为什么 GMT-0400 在 1989 年之前转变为 GMT-0500? > new Date('1989-04-02T23:01:14.52Z') Sun Apr 02 1989 19:01:14
我从服务器获取日期字符串及其 GMT+2 我认为无法转换为印度 GMT 5:30 格式 这是服务器日期字符串 2017-01-11T05:08:15.157Z 我想要印度时间格式的这个我已经尝试了下面
我每分钟运行一个任务,我想打印出当前 GMT 时间和 9PM GMT 之间的差异,我希望它一直运行,所以一旦到达 9PM GMT,它就会重置为 24 小时所以它正在寻找第二天晚上 9 点(格林威治标准
在这方面遇到了困难,尝试了所有这些不同的日期函数,但不知道如何确定地做到这一点。 最佳答案 您可以使用calendar.timegm来获取自纪元以来的秒数。时间元组是必需的参数,time.strpti
我知道有多种方法可以将日期时间转换为 Unix 时间戳。 但问题是当我们将 GMT 的日期时间值转换为 Unix 时间戳时,它会根据我本地时区的值显示时间戳的值,即 Asia/Kolkata 例如:G
当我将 user_login_date 存储到数据库中时,它是 GMT +5:30,但我的数据库设置为 GMT 0:00 用户在 12:00:00 登录但数据库将该日期存储为 07:30:00 的示例
当我使用“日期”命令时,我们的服务器提供 GMT 时间。但是我现在的时间应该是GMT+8。如何将当前时间显示为 GMT+8?提前致谢。 最佳答案 将这样的一行添加到您的 .profile 文件中,然后
我正在使用此代码获取 android 设备的 timezone TimeZone tz = TimeZone.getDefault(); String current_Time_Zone = (Tim
我也想要 GMT 字符串的时间。 但我无法得到它。 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd/hh-mm"); dateForm
我也是 MVC3 和 C# 的新手。我将使用 C# 通过 MVC3 创建一个测试博客站点。用户可以在哪里写帖子,所以我需要存储用户帖子日期时间,并想在自己的本地时间显示每个其他用户的日期时间。对于这种
我在使用 PHP DateTime 将 GMT -8 时区 (PST) 接收的日期转换为 GMT -7 (PDT) 时区的人类可读格式时遇到困难。 这是一个例子: $tz = new DateTime
例如,我想解析下面的字符串: Tue Sep 28 18:02:24 GMT+08:00 2010 我使用 SimpleDateFormat 的模式: new SimpleDateFormat("EE
我正在尝试使用 html 输入中的信息查询数据库。日期的格式为: Date {Sun Jun 03 2012 00:00:00 GMT+0100 (GMT Daylight Time)} 在我
我有一种情况,我收到以下格式的字符串形式的日期。 “2014 年 1 月 13 日星期一 00:00:00 GMT+0000(GMT 标准时间)” 我需要在 c# 中将其转换为以下格式(日期/字符串)
我能够从完整的字符串名称“Australia/Brisbane”中获取 Java 中的时区对象 TimeZone tz = TimeZone.getTimeZone("Australia/Brisba
我能够从完整的字符串名称“Australia/Brisbane”中获取 Java 中的时区对象 TimeZone tz = TimeZone.getTimeZone("Australia/Brisba
我有这些数据可供使用: Timezone of local time as integer: 8.75 (which is UTC+8.75) 1) 2012-09-04 03:15:03 2) 20
我是一名优秀的程序员,十分优秀!