溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

小程序下訂單日歷插件怎么實(shí)現(xiàn)

發(fā)布時間:2022-03-09 09:53:53 來源:億速云 閱讀:172 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下小程序下訂單日歷插件怎么實(shí)現(xiàn)的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

小程序下訂單日歷插件怎么實(shí)現(xiàn)

  這個插件分為上下兩部分,上邊是tab欄,會根據(jù)當(dāng)前的日期自動定位到當(dāng)前,并展示以后7天的日期,下邊為內(nèi)容展示,隨tab欄變化而變化。

  思路:

  首先用new Data()時間對象初始化時間,獲取當(dāng)前的日期,用new Date(Date.UTC(year, month - 1, 1)).getDay()獲取每個月的第一天是星期幾。

  // 計(jì)算每月第一天是星期幾

  function getFirstDayOfWeek(year, month) {

  return new Date(Date.UTC(year, month - 1, 1)).getDay();

  }

  const date = new Date();

  const cur_year = date.getFullYear();

  const cur_month = date.getMonth() + 1;

  const cur_date=date.getDate();

  const weeks_ch = ['日', '一', '二', '三', '四', '五', '六'];

  利用構(gòu)造函數(shù)生成數(shù)據(jù),一會用。

  //利用構(gòu)造函數(shù)創(chuàng)建對象

  function calendar(date,week){

  this.date=cur_year+'-'+cur_month+'-'+date;

  if(date==cur_date){

  this.week = "今天";

  }else if(date==cur_date+1){

  this.week = "明天";

  }else{

  this.week = '星期' + week;

  }

  }

  使用for循環(huán)生成json數(shù)據(jù):

  for(var i=1;i<=monthLength;i++){

  //當(dāng)循環(huán)完一周后,初始化再次循環(huán)

  if(x>6){

  x=0;

  }

  //利用構(gòu)造函數(shù)創(chuàng)建對象

  that.data.calendar[i] = new calendar(i, [weeks_ch[x]][0])

  x++;

  }

  這里因?yàn)橐恢苡?天,所以當(dāng)x>6的時候,重置為0。

  最后展示部分源碼

  var that=this;

  function getThisMonthDays(year, month) {

  return new Date(year, month, 0).getDate();

  }

  // 計(jì)算每月第一天是星期幾

  function getFirstDayOfWeek(year, month) {

  return new Date(Date.UTC(year, month - 1, 1)).getDay();

  }

  const date = new Date();

  const cur_year = date.getFullYear();

  const cur_month = date.getMonth() + 1;

  const cur_date=date.getDate();

  const weeks_ch = ['日', '一', '二', '三', '四', '五', '六'];

  //利用構(gòu)造函數(shù)創(chuàng)建對象

  function calendar(date,week){

  this.date=cur_year+'-'+cur_month+'-'+date;

  if(date==cur_date){

  this.week = "今天";

  }else if(date==cur_date+1){

  this.week = "明天";

  }else{

  this.week = '星期' + week;

  }

  }

  //當(dāng)前月份的天數(shù)

  var monthLength= getThisMonthDays(cur_year, cur_month)

  //當(dāng)前月份的第一天是星期幾

  var week = getFirstDayOfWeek(cur_year, cur_month)

  var x = week;

  for(var i=1;i<=monthLength;i++){

  //當(dāng)循環(huán)完一周后,初始化再次循環(huán)

  if(x>6){

  x=0;

  }

  //利用構(gòu)造函數(shù)創(chuàng)建對象

  that.data.calendar[i] = new calendar(i, [weeks_ch[x]][0])

  x++;

  }

  //限制要渲染的日歷數(shù)據(jù)天數(shù)為7天以內(nèi)(用戶體驗(yàn))

  var flag = that.data.calendar.splice(cur_date, that.data.calendar.length - cur_date <= 7 ? that.data.calendar.length:7)

  that.setData({

  calendar: flag

  })

  //設(shè)置scroll-view的子容器的寬度

  that.setData({

  width: 186 * parseInt(that.data.calendar.length - cur_date <= 7 ? that.data.calendar.length : 7)

  })

以上就是“小程序下訂單日歷插件怎么實(shí)現(xiàn)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI