如何从格式化为“0”的日期中删除未使用的零;0d 0h 23m 4s”;
How do I remove the unused zeros from a date formatted like "0d 0h 23m 4s"?
当它说0d 0h 23m 4s时,我如何从我的网站计数器中删除未使用的零。。。"0d"&应删除"0h"。。。我该怎么做?
下面是我的代码副本,它很有效,我只是不知道如何在不需要的时候阻止零的显示。示例:计时器显示0d 0h 58m 3s天和小时为零,不需要显示,那么我该如何删除它们?我希望这能让你清楚地了解这里的情况
var year=2012 //-->Enter the count down target date YEAR
var month=3 //-->Enter the count down target date MONTH
var day=27 //-->Enter the count down target date DAY
var hour=0 //-->Enter the count down target date HOUR (24 hour clock)
var minute=00 //-->Enter the count down target date MINUTE
var tz=-5 //-->Offset for your timezone in hours from UTC (see http://wwp.greenwichmeantime.com/index.htm to find the timezone offset for your location)
// -->DO NOT CHANGE THE CODE BELOW! This is just a personal comment dont mind it<--
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
function countdown(yr,m,d,hr,min){
theyear=yr;themonth=m;theday=d;thehour=hr;theminute=min
var today=new Date()
var todayy=today.getYear()
if (todayy < 1000) {todayy+=1900}
var todaym=today.getMonth()
var todayd=today.getDate()
var todayh=today.getHours()
var todaymin=today.getMinutes()
var todaysec=today.getSeconds()
var todaystring1=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec
var todaystring=Date.parse(todaystring1)+(tz*1000*60*60)
var futurestring1=(montharray[m-1]+" "+d+", "+yr+" "+hr+":"+min);
var futurestring=Date.parse(futurestring1)-(today.getTimezoneOffset()*(1000*60));
var dd=futurestring-todaystring
var dday=Math.floor(dd/(60*60*1000*24)*1)
var dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1)
var dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1)
var dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1)
if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=0){
document.getElementById('count').innerHTML=current;
return;
}
else {
document.getElementById('count').innerHTML=+dday+ "d "+dhour+"h "+dmin+"m "+dsec+"s";
setTimeout("countdown(theyear,themonth,theday,thehour,theminute)",1000);
}
}
用空字符串替换它有什么想法吗?
document.getElementById('count').innerHTML=current.replace(/0[a-z]'s/gi,'');
计数时:
document.getElementById('count').innerHTML=
(+dday > 0 ? +dday + 'd ' : '') +
(dhour > 0 ? dhour+'h ' : '') +
(dmin > 0 ? dmin+'m ' : '') +
dsec+'s';
或(较短)
var val = +dday+ "d "+dhour+"h "+dmin+"m "+dsec+"s";
document.getElementById('count').innerHTML = val.replace(/0[a-z]'s/gi,'');
更改此行:
document.getElementById('count').innerHTML=+dday+ "d "+dhour+"h "+dmin+"m "+dsec+"s";
有条件地显示dday、dhour等。例如:
document.getElementById('count').innerHTML= ((dday !=0) ? (dday+ "d ") : "") + ((dhour !=0) ? dhour+"h " : "") +dmin+"m "+dsec+"s";
为了更清晰,您可以在多行中构建字符串,例如:
var counterStr = "";
if (dday != 0)
counterStr += dday+ "d ";
if (dhour != 0)
counterStr += dday + "h ";
counterStr += dmin+"m "+dsec+"s";
document.getElementById('count').innerHTML = counterStr;
试试这个
else {
count_str = "";
if (dday > 0) {
count_str = count_str + dday + "d ";
}
if (dhour> 0) {
count_str = count_str + dhour + "h ";
}
count_str = count_str + dmin+"m "+dsec+"s"
document.getElementById('count').innerHTML=count_str;
setTimeout("countdown(theyear,themonth,theday,thehour,theminute)",1000);
}
不要为moment.js已经处理好的东西而流汗。这个没有依赖关系的小型javascript库负责显示日期或时间(到目前为止已经过去)。它还为本地化提供了强大的支持。
相关文章:
- $rootScope未使用forEach进行更新
- 无法在现有状态转换期间更新-未使用任何非法的setState()
- 角度控制器未使用OcLazyLoad和ngRoute加载
- 绑定到 x 可编辑的成功函数未使用正确的参数执行
- 使用jQuery将单击绑定到页面中未使用的部分
- 未使用Javascript在IE中设置Cookie
- Ionic:AngularJS变量未使用$scope更新DOM
- 元素未使用当前玩家操作进行更新
- 将方法从控制器注入到未使用右变量调用的指令
- LinkedIn共享链接图片未使用自定义url更新
- 地图视图未使用PhoneGap加载
- 组件未使用ReactJS和React Router进行渲染
- 表单未使用 MVC 提交任何值 Asp.Net
- 短信未使用Branch.io和intl tel输入发送到intl号码
- 表列未使用tablesorter插件进行排序
- placeHolder id未使用style.display显示
- 如何忽略单词like“”中的未使用空格;测试-文本”;同时构建html标签
- 表单中的数据未使用javascript中的serialize()获取
- 未使用jQuery验证器选中Css样式复选框时
- 如何从格式化为“0”的日期中删除未使用的零;0d 0h 23m 4s”;