首页 > 系统相关 >js获取nginx服务器时间

js获取nginx服务器时间

时间:2023-11-28 10:37:48浏览次数:39  
标签:10 xhr new js nginx 2022 time 服务器

前端页面js获取nginx服务器时间
在实际开发中,我们通常要使用的是服务器端的时间,而不是本机电脑的时间,在js文件中直接通过new Date()获取的时间是本机电脑的系统时间,获取服务器时间的方法如下:
1.修改nginx的配置文件nginx.conf,在对应服务器端口的server路径下直接添加如下代码:

 location = /time.txt {
      return 200 $time_local;        
 }

注意:

具体效果可参考最下方运行结果:

nginx配置$time_local 生成格式为:25/Oct/2022:10:56:15 +0800
不可用new Date("25/Oct/2022:10:56:15 +0800")
nginx配置$time_iso8601 生成格式为:2022-10-25T15:42:45+08:00
可用new Date("2022-10-25T15:42:45+08:00")转化为国际标准时间,然后才能格式化

添加后如下:(下图中我是在本地测试,server_name为127.0.0.1,本地测试可到nginx官网下载nginx,这里我下载的版本是nginx-1.23.2,完成后双击运行,修改配置文件后重启)
重启nginx命令(要到安装nginx的目录下,地址栏输入cmd回车):
nginx -s reload(cmd命令)
./nginx -s reload(linux命令)
停止命令: nginx -s stop(cmd命令)
端口号listen应该和本地运行文件的端口号保持一致,在服务器端不用管。

 2.在网页中直接访问http://127.0.0.1:8818/time.txt,访问成功后出现如下返回:

 3.在前端js页面中访问time.txt文件,代码如下:(可直接在服务器测试,本地配置错误可能会报错,而且时间是跟随本机系统时间,测试不出变化)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <script src="../jQuery.js"></script>
        <title>JS获取Nginx服务器时间</title>
    </head>
    <div>
        <div class="servertime"></div>
        <div class="time"></div>
        <!-- <button onclick="printTime()">JS获取Nginx服务器时间</button> -->
        <button onclick="getFwqDate()">JS获取Nginx服务器时间</button>
    </div>
    <body>
        <script type="text/javascript">
            function getFwqDate() {
                let xhr = new XMLHttpRequest();
                if (!xhr) {
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }
                // xhr.open("HEAD", location.href, false);
                xhr.open("POST", '/time.txt', false);
                xhr.overrideMimeType("text/html;charset=utf-8")
                xhr.send();
                console.log("xhr.responseText=", xhr.responseText);
                /**
                 * 20221014lmy添加
                 * nginx配置$time_iso8601 生成格式为:2022-10-25T15:42:45+08:00
                 * nginx配置$time_local 生成格式为:25/Oct/2022:10:56:15 +0800
                 */
                //getTime(),将标准时间转化为毫秒数时间
                millionstime = (new Date(xhr.responseText)).getTime();
                // millionstime = new Date(xhr.responseText);
                console.log("millionstime=", millionstime);
                //将获取到的时间转化成自己想要的格式,此处是20221014155450
                var servertime = new Date(millionstime);
                var year = servertime.getFullYear();
                var month = servertime.getMonth() + 1;
                var day = servertime.getDate();
                var hours = servertime.getHours();
                var minutes = servertime.getMinutes();
                var seconds = servertime.getSeconds();
                if (month < 10) {
                    month = '0' + month;
                }
                if (day < 10) {
                    day = '0' + day;
                }
                if (hours < 10) {
                    hours = '0' + hours;
                }
                if (minutes < 10) {
                    minutes = '0' + minutes;
                }
                if (seconds < 10) {
                    seconds = '0' + seconds;
                }
                servicedate = year.toString() + month.toString() + day.toString() + hours.toString() + minutes.toString() + seconds.toString();
                console.log("servicedate=",servicedate)
                return servicedate;
            }
        </script>
    </body>
</html>

报错:运行可能会遇到如下错误:

 打开控制台,找不到相应页面:

 

解决办法:可在文件运行时先nginx -s stop停止nginx服务,待需要访问time.txt文件时,再双击启动(这种情况只会在本地运行时发生,在部署的服务器端不会报错)

运行结果:

1.$time_local

nginx配置$time_local 生成格式为:25/Oct/2022:10:56:15 +0800
不可用new Date("25/Oct/2022:10:56:15 +0800")

 2.$time_iso8601

nginx配置$time_iso8601 生成格式为:2022-10-25T15:42:45+08:00
可用new Date("2022-10-25T15:42:45+08:00")转化为国际标准时间

 

标签:10,xhr,new,js,nginx,2022,time,服务器
From: https://www.cnblogs.com/scale/p/17861275.html

相关文章

  • 本地Linux 服务器实现内网穿透,SSH远程连接
     公网SSH远程连接Linux的好处在于可以在任何地方通过互联网连接到Linux服务器,无需在服务器所在的局域网内。这样可以方便地进行远程管理、维护和操作,提高了工作效率和灵活性。同时,公网SSH连接还可以加强服务器的安全性,因为可以通过SSH协议进行加密通信,保护数据的安全性。下面简......
  • C\C++ 使用RapidJSON库,轻松解析和生成JSON
    简介  RapidJSON是一个高效的C++JSON解析器和生成器。它专注于性能和易用性,使得处理JSON数据变得简单和快速。RapidJSON支持现代的JSON特性,如嵌套对象、数组、Unicode编码和注释。它的API简洁易用,可以轻松解析和生成JSON数据。无论你的项目需要处理大量的JSON数据,还是只需要解析......
  • Java 将JSON数组转成List对象集合
     一、从对象列表中提取并组装JSON字段的数据:(工具类)publicclassJsonMsgUtils<T>{/***从对象列表中提取并组装JSON字段的数据。**@paramlogs包含对象的列表*@paramtargetClass目标对象类型,表示JSON消息的结构......
  • 从前端的角度来梳理微信支付(小程序、H5、JSAPI)的流程
    因业务需要,开发微信支付功能,涉及三种支付方式:JSAPI支付:微信内网页支付,需要开通微信服务号小程序支付:在小程序中支付,需要开通小程序H5支付:在手机浏览器(出微信内网爷)中网页支付使用微信支付的前提必开通微信商户号,要使用到那种的支付方式要前需在商户平台开通(要审核)。支付......
  • js获取元素特性值+js修改元素特性值
    js获取元素特性值--元素<formclass="layui-formlayui-form-panelayui-form-itemus-form"id="us-form"usdata="{usurl:'/usanaly/roomenergylog/usgetentity',ussurl:'/usanaly/roomenergylog/usupdate',usload:'......
  • 本地Linux 服务器实现公网SSH远程连接
     公网SSH远程连接Linux的好处在于可以在任何地方通过互联网连接到Linux服务器,无需在服务器所在的局域网内。这样可以方便地进行远程管理、维护和操作,提高了工作效率和灵活性。同时,公网SSH连接还可以加强服务器的安全性,因为可以通过SSH协议进行加密通信,保护数据的安全性。下面简......
  • 百战商城项目---第11章 文件服务器 FastDFS 搭建
    1简介FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份......
  • JS逆向——某度翻译
    JS逆向——某度翻译文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,如有侵权,请联系作者立即删除!一、定位接口目标网站:aHR0cHM6Ly9mYW55aS5iYWlkdS5jb20vP2ZyPXBjUGluemh1YW4=使用Chrome浏览器打开抓包工具输入:HelloWorld!通过观察可以发现,右侧直接出现翻译结......
  • ASP.NET Core Web API设置响应输出的Json数据格式的两种方式
    前言在ASP.NETCoreWebAPI中设置响应输出Json数据格式有两种方式,可以通过添加System.Text.Json或Newtonsoft.JsonJSON序列化和反序列化库在应用程序中全局设置接口响应的Json数据格式,本文示例使用的是新的MinimalAPI模式。JSON序列化和反序列化库System.Text.JsonSystem.Te......
  • js逆向-Mytoken请求参数逆向
    声明本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负!如果觉得文章对你有所帮助,可以给博主点击关注和收藏哦!前言目标网站:aHR0cHM6Ly93d3cubXl0b2tlbmNhcC5jb20v接口:aHR0cHM6Ly9hcGkubXl0b2tlbmFwaS5jb20vdGlja2VyL2N1cnJlbmN5bGlzdGZvcmFs目标参数:code......