在 PHP 和 JavaScript 中获取时间戳的方式有所不同,导致它们的长度和单位可能不一致。以下是主要区别和解决方法:
1. PHP time() 和 JavaScript Date.parse(new Date()) 的区别
语言/方法
返回值
单位
示例
PHP time()
当前 Unix 时间戳(秒)
秒(10位)
1651234567
JS Date.parse(new Date())
当前 Unix 时间戳(毫秒)
毫秒(13位)
1651234567000
PHP time() 返回的是 秒级时间戳(10位)。
JS Date.parse(new Date()) 返回的是 ...
问题
setTimeout在某一次写一个倒计时功能时,当浏览器缩小或者离开当前页面,倒计时会不准确,进入休眠模式,执行间隔比预期要慢。
设定一个 150ms 后执行的定时器不代表到了 150ms 代码就立刻执行,它表示代码会在 150ms 后被加入到队列中。如果在这个时间点上,队列中没有其他东西,那么这段代码就会被执行。
也就是说定时器会在你任务队列中没用执行任务时才会将你的定时器添加到任务队列中。这样,他会带来一些问题:
无视代码错误
setInterval有个讨厌的习惯,即对自己调用的代码是否报错这件事漠不关心。换句话说,如果setInterval执行的代码由于某种原因出了错,它还会持续不断(不管不顾)地调用该代码。
无视网络延迟...
前几天提交了一个Google sitemap,今天查看的时候,显示了如下内容:日期无效 发现无效日期。请修正日期或格式,然后重新提交。 父标记:标记:值:检测到问题的日期:urllastmod2009-05-25 12:33:022009-5-24看了一下Google的帮助说明里边的sitemap常见错误:压缩错误Google 在尝试对压缩的 Sitemap 文件进行解压缩时出现了错误。请重新压缩您的 Sitemap(使用诸如 gzip 的工具),然后将其上传到您的网站,再重新提交。Sitemap 为空Google 已下载了您的 Sitemap,但其中未包含任何网址。请检查您的 Sitemap,确保其不为空。如果您的 Sitemap 使用的是 Google Sitemap 协议,请对其进行验证以确保对网址作了正确标记。然后重新...
类别:网页编程 查看:154
更新:2014-06-03
Form.Observer
new Form.Observer(element, frequency, callback)
一个定时观察器,当表单中任意一个控件的值发生变化时,将触发回调。
译注:注意,若要使用表单观察器,则表单中需要检测的控件必须添加
name 属性。
Form.Observer 使用 Form.serialize() 实现
getValue 方法。关于定时观察器的描述见
Abstract.TimedObserver。
样例
在下面的样例中,如果表单中任意控件的值发生变化,则改变表单的外观显示。当数据提交后(储存),
表单重置为初始时的外观。
Login Preferences
Current settings:
...
Form.Element.Observer
new Form.Element.Observer(element, frequency, callback)
一个针对指定表单控件的定时观察器。
Form.Element.Observer 使用 Form.Element.getValue() 实现 getValue() 方法。关于定时观察器的描述见 Abstract.TimedObserver。
TimedObserver 是一个抽象的观察器类,其具体类的实例用于对一些值进行定期检测, 若值发生变化,则触发一个回调。检测频率以秒为单位。
TimedObserver 对象使用 getValue() 实例方法对值进行检测。 在抽象类中并没有实现这个方法,你必须使用具体类如 Form.Observer 或 Form.Element.Observer 才能进行相应的检测。前者序列化一个表单,当结果发生变化时, 触发回调。而后者则是检测到指定的表单控件的值发生变化,就触发回调。
TimedObserver 的使用非常简单:实例化具体类并传递相应的参数,例如:
new Form.Element.Observer( 'myelement', 0.2, // 200 毫秒
function(el, value){
alert('The form control has c...
times [1.5.1]
times(count) -> string
将字符串重复 count 次。
样例
"echo ".times(3); //-> "echo echo echo "
times
times(iterator) -> Number
采用 Ruby 的风格来封装一个标准的 [0...n] 循环
回调函数 iterator 被调用时,会传入一个参数,该参数按照循环的次数从 0 到当前 Number 对象所表示的数值,但不包括 Number 的值。
样例
var s = '';
(5).times(function(n) { s += n; });
s // -> '01234'
getTime 方法
返回 Date 对象中的时间值。
dateObj.getTime()
必选项 dateObj 参数为 Date 对象。
说明
getTime 方法返回一个整数值,这个整数代表了从 1970 年 1 月 1 日开始计算到 Date 对象中的时间之间的毫秒数。日期的范围大约是 1970 年 1 月 1 日午夜的前后各 285,616 年。负数代表 1970 年之前的日期。
在进行各种日期和时间换算的时候,可以定义一些变量来表示一天、一个小时或一分钟中包含的毫秒数。这样做通常是很有帮助的。例如:
var MinMilli = 1000 * 60
var HrMilli = MinMilli * 60
var DyMilli = HrMilli * 24
示例
下面这个例子说明了 getTim...
getTimezoneOffset 方法
返回用分钟表示的主计算机上的时间和全球标准时间 (UTC)之间的差别。
dateObj.getTimezoneOffset()
必选项 dateObj 参数为 Date 对象。
说明
getTimezoneOffset 方法返回一个整数值,这个整数代表了当前计算机上的时间和 UTC 之间相差的分钟数。这些值和执行脚本的计算机相关。如果这个方法被一个服务器脚本调用,那返回值和服务器相关。而如果这个方法被一个客户机脚本调用,那么返回值就根据客户机上的时间来确定。
如果所在位置的时间落后于 UTC (比如, Pacific Daylight Time),那么这个值就是正值,而如果所在位置的时间超前于 UTC (比如说...
window对象有两个主要的定时方法,分别是setTimeout 和 setInteval 他们的语法基本上相同,但是完成的功能取有区别。 setTimeout方法是定时程序,也就是在什么时间以后干什么。干完了就拉倒。 setInterval方法则是表示间隔一定时间反复执行某操作。 如果用setTimeout实现setInerval的功能,就需要在执行的程序中再定时调用自己才行。如果要清除计数器需要 根据使用的方法不同,调用不同的清除方法: 例如:tttt=setTimeout('northsnow()',1000);clearTimeout(tttt); 或者:tttt=setInterval('northsnow()',1000);clearInteval(tttt); 举一个例子:<div id="liujincai"></div><input type="button" na...