如何在MySQL中计算七天以前那天的开始时间和结束时间?

为了让逻辑看着清晰一些,加了一个变量:

SET @now = NOW();

SET @sevenDaysBefore = DATE_ADD( @now, INTERVAL - 7 DAY );

SET @startOfSevenDaysBefore = STR_TO_DATE( date_format( @sevenDaysBefore, '%Y-%m-%d' ), '%Y-%m-%d %H:%i:%s' );

SET @endOfSevenDaysBefore = DATE_ADD( DATE_ADD( @startOfSevenDaysBefore, INTERVAL + 1 DAY ), INTERVAL - 1 SECOND );

SELECT
	@now AS '现在',
	@startOfSevenDaysBefore AS '七天前开始',
	@endOfSevenDaysBefore AS '七天前结束'

如何在MySQL中计算两个日期的间隔?

计算相差多少天,第一选择就是DATEDIFF函数,但注意的是,在MySQL中DATEDIFF只有两个参数,没有需要比较的参数这个值,比如下面这个例子就是判断今天:

DATEDIFF( NOW(), create_time ) = 0

下面这个例子可以判断是前一天,也就是昨天:

DATEDIFF( NOW(), user_order.create_time ) = 1

如果要判断相差多少秒,这时候就要将TIMEDIFF和time_to_sec组合起来用,前者计算出相差多少,但还是几分几秒这种格式,后者可以转化成具体的秒数值:

timediff( finish_time, pay_time ))

如何在微信小程序中实现自动更新?

第三方开发者的示例:

updateApp:function(){
    const updateManager = wx.getUpdateManager()
    updateManager.onCheckForUpdate(function (res) {
      // 请求完新版本信息的回调
      if (res.hasUpdate) {
        wx.showLoading({
          title:'更新下载中...',
        })
      }
    })
    updateManager.onUpdateReady(function () {
      wx.hideLoading();
      wx.showModal({
        title:'更新提示',
        content:'新版本已经准备好,是否重启应用?',
        success:function (res) {
          if (res.confirm) {
            // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
            updateManager.applyUpdate()
          }
        }
      })
 
    })
    updateManager.onUpdateFailed(function () {
      // 新的版本下载失败
      wx.hideLoading();
      wx.showToast({ title:'下载失败...', icon:"none" });
    })
  },

微信官方的示例:

// wx.getUpdateManager 在 1.9.90 才可用,请注意兼容
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
 // 请求完新版本信息的回调
 console.log(res.hasUpdate)
})
updateManager.onUpdateReady(function () {
 wx.showModal({
   title:'更新提示',
   content:'新版本已经准备好,是否马上重启小程序?',
   success:function (res) {
     if (res.confirm) {
       // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
       updateManager.applyUpdate()
     }
   }
 })
})
updateManager.onUpdateFailed(function () {
 // 新的版本下载失败
})

参考资料
https://developers.weixin.qq.com/community/develop/doc/000e2c0ca50a10233167de05c51800
https://developers.weixin.qq.com/community/develop/doc/000c2430d30b70251e86f0a0256c09

微信小程序wx:if不触发?

出现了几次这个Bug,都是类似下面的写法:

<button wx:if="userLogined" class="primary-button" ontap="confirmOrder">结算</button>

上面这个代码的问题,userLogined不是变量,而是字符串,这里的wx:if会始终为true的,要换成变量才可以,下面是正确的写法:

<button wx:if="{{userLogined}}" class="primary-button" ontap="confirmOrder">结算</button>

如何在微信小程序中修改data中属性的值?

虽然可以通过this.data.XX的形式读取到变量,但是不要用这种方式赋值,因为这种方式不会触发页面的渲染,正确姿势是用this.setData赋值。

this.setData({
  "categories": response.data.result
})

如果要修改数组中其中一个元素,则要在key的外面套一个中括号:

that.setData({
  ["categories[" + cIndex + "].foodsList[" + currentIndex + "].buyingAmount"]: originalAmount + 1
})