javascript - JavaScript GetFullYear 函数错误
问题描述
一个小缺陷是,如果客户端系统日期较旧,则站点也会同样显示。例如,您的版权是从 2000 年到 2019 年。如果有人的日期是 2017 年,则页脚显示从 2000 年到 2017 年的版权。有没有办法解决它?与其从客户那里获取日期,不如从谷歌获取通用年份
实验
我将窗口的日期从 2019 年更改为 2017 年,当我刷新网站时,它在页脚中显示了 2017 年,而不是现实世界的日期。
解决方案
您可以查询充当时间服务器的 Web 服务,而不是直接使用 Date() 方法(从用户浏览器/操作系统检索时间)获取时间。
https://worldtimeapi.org/是一个不错的选择。
一个简单的XmlHttpRequest可以用来:
https://worldtimeapi.org/api/timezone/Etc/UTC
得到一个 JSON 响应,如:
week_number 30
utc_offset "+00:00"
utc_datetime "2019-07-23T19:45:27.238014+00:00"
unixtime 1563911127
timezone "Etc/UTC"
raw_offset 0
dst_until null
dst_offset 0
dst_from null
dst false
day_of_year 204
day_of_week 2
datetime "2019-07-23T19:45:27.238014+00:00"
client_ip "12.34.56.78"
abbreviation "UTC"
如果您将utc_dateTime提供给 Javascript 的 Date() 对象的构造函数,您可以获得正确的年份。
这是一个例子:
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://worldtimeapi.org/api/timezone/Etc/UTC");
xhr.onload = function() {
var arr = JSON.parse(this.responseText);
var date = new Date(arr.utc_datetime);
console.log(date.getFullYear());
};
xhr.send();
推荐阅读
- jenkins - 在 Jenkins 中为所有构建的单个测试用例执行时间绘制图表
- mysql - 流行 SQL + MySQL。“运行”按钮似乎不起作用(不可点击)?
- sql - 用其他表中的值替换占位符
- django - 嵌套子查询区别注释总和
- reporting-services - 具有多种颜色的单线和多个图标的折线图
- reactjs - 从服务器获取时微调器未加载
- python - 如何在 colab 中实现 Python?
- javascript - 如何根据应用程序中存在的角度材料吐司消息在整个应用程序中禁用/启用鼠标单击
- javascript - 如何在 Typescript 接口中为 onSubmit 定义类型?
- oracle - 如何更改 Oracle 数据库中的默认角色