织梦教程:教你用js获取用户留言时间!

皇族网 640 0


公司官网使用的是dedecms,在自定义表单中新建了一个表单作为留言框,而且需要记录。

初步是想法是用户打开页面的时候,记录时间,然后写入到一个隐藏的input里面,跟随表单提交即可。

织梦教程:教你用js获取用户留言时间!-第1张图片-皇族网


原先使用获取时间的js如下:

JavaScript
$(function() {
    var nowDate = new Date();
    var str = nowDate.getFullYear() + "-" + (nowDate.getMonth() + 1) + "-" + nowDate.getDate() + " " + nowDate.getHours() + ":" + nowDate.getMinutes() + ":" + nowDate.getSeconds();
    document.getElementById("time").value = str;});

html如下:

Markup
<input type="hidden" name="times" id="times" class="intxt" value="">

功能是实现了,但是后来查看留言时候发现,居然有些人留言是2008年,2009年,2010年等,我擦咧,这是穿越了吗?

才发现上面的js获取来的是用户电脑的时间,如果用户电脑时间不正确的话,就会出现上面说的那种情况。

百度一番,找到以下的可用JS:

JavaScript
ajax();function ajax(option) {
    var xhr = null;
    if (window.XMLHttpRequest) {
        xhr = new window.XMLHttpRequest();
    } else { // ie
        xhr = new ActiveObject("Microsoft")
    }
    // 通过get的方式请求当前文件
    xhr.open("get", "/");
    xhr.send(null);
    // 监听请求状态变化
    xhr.onreadystatechange = function() {
        var time = null,
        curDate = null;
        if (xhr.readyState === 2) {
            // 获取响应头里的时间戳
            time = xhr.getResponseHeader("Date");
            console.log(xhr.getAllResponseHeaders()) curDate = new Date(time);
            document.getElementById("time").innerHTML = "服务器时间是:" + curDate.getFullYear() + "-" + (curDate.getMonth() + 1) + "-" + curDate.getDate() + " " + curDate.getHours() + ":" + curDate.getMinutes() + ":" + curDate.getSeconds();
        }
    }}

html如下:

Markup
<p id="time"></p>

这样子获取到的时间就是服务器上面的时间啦,只要服务器时间正常就好了。



标签: 织梦CMS 网络教程

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~