当前位置:   article > 正文

时间自动读秒效果。微信小程序实现页面显示实时日期和时间_微信小程序wxml展示时间

微信小程序wxml展示时间

演示效果: 

原理

通过开启一个定时器,每隔一秒执行一次获取当前时间的方法函数并实时渲染到前端页面

一、格式化当前时间的方法

  1. export const getTimeNow = () => {
  2. let dateTime
  3. let yy = new Date().getFullYear()
  4. let mm = new Date().getMonth() + 1
  5. let dd = new Date().getDate()
  6. let hh = new Date().getHours()
  7. let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() :
  8. new Date().getMinutes()
  9. let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds() :
  10. new Date().getSeconds()
  11. dateTime = `${yy}-${mm}-${dd} ${hh}:${mf}:${ss}`;
  12. return dateTime
  13. }

通过调用Date()函数获取当前时间戳。使用模板字符串将获取到的年月日拼接成我们习惯的形式

二、XML代码

  1. <!-- 显示时间 -->
  2. <view class="time">
  3. {{time}}
  4. </view>

三、JavaScript代码

  1. data: {
  2. // 显示的时间
  3. time:'',
  4. // 定时器的开关
  5. timer: ''
  6. },
  7. //页面首次加载会将时间赋给time
  8. /**
  9. * 生命周期函数--监听页面初次渲染完成
  10. */
  11. onReady() {
  12. let that = this
  13. that.setData({
  14. time:getTimeNow()
  15. })
  16. },
  17. /**
  18. * 生命周期函数--监听页面加载
  19. */
  20. onLoad(options) {
  21. const that = this
  22. this.data.timer = setInterval(function(){
  23. // 实时调用时间函数getTimeNow获取最新时间
  24. const Time = getTimeNow()
  25. that.setData({
  26. time:Time
  27. })
  28. console.log("定时器还开着喔~~~");
  29. },1000)
  30. },
  31. /**
  32. * 生命周期函数--监听页面卸载
  33. */
  34. onUnload() {
  35. // 当关闭当前页面时关闭定时器,不然会一直开着,影响性能
  36. clearInterval(this.data.timer)
  37. },

注意点:

1、在 onReady()生命周期函数中当页面渲染完成即刻将获取到的当前时间赋给time值。在使用 this.setData()函数时,注意 this 的指向问题,需要将 that=this 。这样才不会报错

2、 在页面加载设置一个定时器,并使用 timer 定时器开关存储起来

3、 在页面卸载函数中清除当前开启的定时器,不然会一直在执行。严重影响性能消耗

错误展示:

this.setData()函数报错,使用 that=this 重新指向。这是因为 this关键字的指向可能会发生变化,使用that=this的方式可以保存this的指向,确保在后续代码中能够正确访问和使用

常见情况:在一个回调函数或异步操作中使用this.setData()时,this的指向会发生改变,指向的不是原来的上下文对象,导致无法正确执行setData()函数。

一定要在监听页面卸载函数中将定时器关掉,不然就算你退出当前页面他也一直在开着。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/651033
推荐阅读
相关标签
  

闽ICP备14008679号