javascript - 如何在不刷新页面的情况下使用 JavaScript 显示当前时间
问题描述
我们目前通过以下 JavaScript 函数在 ColdFusion webapp 中显示时间戳信息。当用户单击网页上的 HTML 按钮时调用此函数。问题是时间只是最后一页加载时的当前时间。因此,如果用户在页面上坐了一会儿,时间就会变得不准确。
在 JavaScript 中是否有更优雅、更准确的方法来做到这一点?或者 ColdFusion 有没有办法实时提取服务器时钟信息?
HTML 按钮
<input class="timerStart" id="startButton2" type="button" value="Insert Start Time" onclick="insertAtCaret('messageBody','---Start Time:#DateFormat(Now())# : #TimeFormat(Now())#---');" />
Javascript代码
function insertAtCaret(areaID,text) {
var txtarea = $("textarea[data-focused=true]")[0];
if(txtarea!=undefined)
{
var scrollPos = txtarea.scrollTop;
var strPos = 0;
var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ?
"ff" : (document.selection ? "ie" : false ) );
if (br == "ie") {
txtarea.focus();
var range = document.selection.createRange();
range.moveStart ('character', -txtarea.value.length);
strPos = range.text.length;
}
else if (br == "ff") {strPos = txtarea.selectionStart;}
var front = (txtarea.value).substring(0,strPos);
var back = (txtarea.value).substring(strPos,txtarea.value.length);
txtarea.value=front+text+back; strPos = strPos + text.length;
if (br == "ie") {
txtarea.focus();
var range = document.selection.createRange();
range.moveStart ('character', -txtarea.value.length);
range.moveStart ('character', strPos);
range.moveEnd ('character', 0); range.select();
}
else if (br == "ff") {
txtarea.selectionStart = strPos;
txtarea.selectionEnd = strPos;
txtarea.focus();
}
txtarea.scrollTop = scrollPos;
}
}
解决方案
Date
使用用户系统时间,您可以使用 JavaScript函数访问当前时间和日期。
例如,您可以将代码更改为:
<input class="timerStart" id="startButton2" type="button" value="Insert Start Time" onclick="insertAtCaret('messageBody','---Start Time: ' + (new Date()).toUTCString() + ' ---');" />
这不会产生与您之前完全相同的日期/时间格式,但它可以让您开始进一步研究该主题。要真正处理日期,还请查看momentjs
库:https ://momentjs.com/
推荐阅读
- php - Laravel Eloquent Eager Loading Multiple 有很多关系
- python-3.x - 如何在 Flask 中重新加载图像
- coq - Coq 中的析取交换性
- c# - Task.Run 从 C# 中的同步方法调用异步方法
- scala - Scala使用Gson动态反序列化类
- sql - 结合不同的情况
- ruby-on-rails - 使用表单 Rails 5 时 ActiveRecord::RecordNotFound(找不到没有 ID 的雇主)
- android - 找到“API 密钥”
- c - 减去没有二进制补码的有符号二进制数
- haskell - Haskell:给定一个数字列表和一个数字 k,返回列表中的任何两个数字加起来是否为 k