手机版

如何在微信小程序中计算某个节日还剩多少天

时间:2021-08-21 来源:互联网 编辑:宝哥软件园 浏览:

先看页面效果:

页面如下所示:

好了,正文如下

最近,需要计算一个需求。距离圣诞节、元旦、高考、国庆节等还有多少天?

因为我没有时间在后台,所以本文解释了如何在js中解决这个需求。(实践中建议获取标准时间,当前时间有点不靠谱)

首先,我们必须使用新的Date()来获取当前时间对象,然后使用它的一些方法来获取当前的年、月、日等。

让我们来看看新的Date()对象的常见方法。

getYear();//获取当前年份(2位数)getFullYear();//获取文件年份(4位数字)getMonth();//获取当月(0-11,0代表1月,疯狂,获取日期正常1-31.)getDate();//获取当前日期(1-31)getDay();//获取星期几(0-6,0代表星期日.)getTime();//获取当前时间(1970年1月1日起毫秒),注意是毫秒!getHours();//获取当前小时(0-23)getMinutes();//获取当前分钟(0-59)getSeconds();//获取当前秒数get毫秒();//获取当前毫秒toLocalDateString();//在开始获取当前date时,我先获取Date()对象的月和日,然后判断不等于某个日期的月份。有三种情况.

让my Date=new Date();让year=my date . getfullyear();让month=my date . getmonth();let day=my date . getdate();//判断下一次高考前需要多长时间如果(月6) {//.} else if (month6) {//.} else {if (day==7) {} else {}}但转念一想,这个做法太繁琐了。所以,换一种方式,我们可以直接获取目标日期的时间戳和当前日期的时间戳,并进行比较。

代码如下:

//public API//@在假日日期字符串中传递的参数,如'-10-1 '、'-12-25 '、'-1-1 '等。//@return resolve()回调数组。//数组的第一个参数返回字符串“今天”或“明天”。第二个参数返回还剩多少天settime :函数(str){ let promise=new promise((resolve,Reject)={//Get time对象let date obj=new date()let year=dateobj . getfull year()let month=dateobj . getmonth()let day=dateobj . getdate()//查找当前日期和时间的时间戳。//这里需要注意的是,使用新的Date()。getMonth()获取0-11的值。//用新日期('年-月-日')初始化以查找0: 00: 00的月份//今天需要传入1-12的值。也就是说,月要1 let now=new date()let target=new date(years tr)//target date//先保存。两个参数稍后会用let nowtime=now.getTime() //当前日期时间戳让sjc=now time-target . gettime()//time difference//,将组成一个数组并传递给回调函数。//这两条信息将被直接分配并显示在页面上。如果(sjc 0) {//今年的一个节日还没有过去,就让他们过一年=今天。他们的日子=数学。地板(数学。ABS (sjc/(24 *) 60 * 60 * 1000)))要不然如果(sjc 0) {//今年的一个节日过去了。让mn=year-0 1让mntarget=new date (mnstr)让SJ C2=mntarget . gettime()-now time year=' Ming ' days=math。floor(SJ C2/(24 * 60 * 60 * 1000))} else {//theyear=' today ' days=0 }让arr=[年份,日期]解决

Text{{gk_year}}/text高考:Text { { GK _ days } }/Text days/view view:Text { { GQ _ year } }/Text国庆节:Text { { GQ _ days } }/Text days/view:Text { { yd _ year } Text元旦保留:Text { { yd _ days } }/Text days/view远离text{{sd_year}}/text圣诞节保留:Text { { SD _ days } }/

/* * *生命周期函数-监控页面第一次渲染的完成情况*/onReady:函数(){//设置xx之前还剩多少天。this.setgk() //高考this.setgq() //国庆节this.setyd() //元旦this.setsd() //圣诞节}。/* * *问离高考还有多少天*/设置GK :函数(){ let promis=this . settime('-06-07 ')let that=this promis .然后((arr)={ that . setdata({ GK _ year : arr[0])GK _ days 3360 arr[1]})})},//设置国庆信息设置GQ : function(){ let promis=this . settime('-10-01 ')let that=this //设置元旦设置yd : function(){让promis=this.settime ('-01-01 ')让那=thispromis .然后((arr)={that . setdata({ yd _ year : arr[0],yd _ days 3360 arr[1]})})},//设置Christmas setsd 3360 function(){让promis=this.settime ('-12-25 ')让那=thispromis .然后((arr)={ that。 但是在iphone 6s ios12下,如果没有完成将会失效。不知道这是不是bug,其他手机都没测试过,不清楚有没有不完全修复的。使用时建议人工填写日期。

总结一下,编程是这样的。很多时候我们改变了思维,得到的思维会比以前好很多。所以,即使现在的项目很紧,做完之后也要多思考。想想当时有些尴尬的地方,也许可以想出更好的解决办法。

这对个人和项目都有好处。

10-24更新备注:取当前日期的时间戳计算天数有bug,相差一天。因此,将settime:function()中获取的当前日期的时间戳改为当前时间的时间戳,因为使用了Math.floor()函数进行向下舍入,可以解决时间点带来的时间戳差异问题。最后看一下效果(第一张图片上的文字和第二张图片底部的灰色字体,2018年10月24日更新)

摘要

以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。谢谢你的支持。

版权声明:如何在微信小程序中计算某个节日还剩多少天是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。