我知道有很多这样的话题,但我只是遇到问题,找不到答案。
我的脚本是:
window.onload = function(){
// 200 seconds countdown
var countdown = 14400;
//current timestamp
var now = Date.parse(new Date());
//ready should be stored in your cookie
if ( !document.cookie )
{
document.cookie = Date.parse(new Date (now + countdown * 1000)); // * 1000 to get ms
}
//every 1000 ms
setInterval(function()
{
var diff = ( document.cookie - Date.parse(new Date()) );
if ( diff > 0 )
{
var message = diff/1000 + " seconds left";
}
else
{
var message = "finished";
}
document.body.innerHTML = message;
},1000);
}
我想制作一个倒计时器,它根据用户的 cookie 值告诉用户还剩下多少时间。到目前为止,我设法计算两个值之间的差异,但我不知道如何根据差异时间戳(diff)制作类似“dd/mm/yy hh:mm:ss”的格式。有可能吗?
你想要的是一个将差异(毫秒)转换为类似的函数
5天4小时3米2秒
如果您不介意时间段>几个月有很多天,那么您可以使用如下内容:
function human_time_difference(diff) {
var s = diff % 60; diff = Math.floor(diff / 60);
var min = diff % 60; diff = Math.floor(diff / 60);
var hr = diff % 24; diff = Math.floor(diff / 24);
var days = diff;
return days + 'd ' + hr + 'h ' + min + 'm ' + s + 's';
}
如果以毫秒为单位存在差异,则需要传递该数字除以 1000。您还可以使用 Math.round 来去掉分数,但如果您希望显示该信息,也可以保留它们。
由于以下几个原因,获取月份和年份有点棘手:
- 一个月的天数各不相同。
- 当您从一个月中旬到下一个月中旬时,即使天数 > 31,时间跨度也不会涵盖任何整月(例如,6 月 2 日到 6 月 2 日之间有多少个月) 7月30日??)。
如果您确实想要两次之间的月数,那么它们之间的秒数是不够的。您必须使用日历逻辑,这需要传入开始和结束日期+时间。
PS:当您发布问题时,请避免不相关的细节。例如,您的问题与 cookies、setInterval 或 onload 处理程序无关。您唯一不知道的部分是如何将(毫)秒转换为天、小时等。提供一些关于为什么您尝试做某事的背景可能会有所帮助,但如果不需要了解基本问题,把它放在最后,这样人们就不必在到达核心部分之前费力地阅读它。同样的建议也适用于您的头衔;通过排除不相关的细节(例如 cookie 和倒计时)来确保其相关。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)