這兩天寫了個(gè)超級(jí)簡(jiǎn)單的微信小程序,展示時(shí)間提醒,同時(shí)支持將提醒信息一鍵復(fù)制到剪貼板:
今天是2019年4月17日,星期三,今年的第107天手機(jī)html復(fù)制到剪貼板,這一年29.32%的時(shí)間已流逝
簡(jiǎn)簡(jiǎn)單單的數(shù)字,頗有時(shí)不我待的緊迫感。
之所以寫這么個(gè)微信小程序手機(jī)html復(fù)制到剪貼板,是因?yàn)榕笥延忻咳沾蚩偨Y(jié)的習(xí)慣,每次都要將這句話手動(dòng)生成:
本文呢,就是記錄下我在用代碼簡(jiǎn)化獲取該提醒信息的思路與過程。
最原始的方法自然是手動(dòng)計(jì)算,查一下日期,計(jì)算下是今年的第幾天,再用這數(shù)字除以平年的365或閏年的366得到百分比,把文本和數(shù)據(jù)拼接,目標(biāo)達(dá)成。
至于用代碼來簡(jiǎn)化此過程,我是有兩個(gè)思路:如果是在電腦端,我會(huì)選擇寫代碼,每次運(yùn)行代碼直接生成文本,復(fù)制取用;如果是在手機(jī)上,我選擇做個(gè)微信小程序,首頁展示提醒信息,一鍵復(fù)制目標(biāo)文本。
電腦端代碼
具體到代碼,實(shí)現(xiàn)方式有很多種,思路基本和手動(dòng)計(jì)算一致,拿到日期信息進(jìn)行些簡(jiǎn)單的判斷計(jì)算,再將文本字符串和日期數(shù)字?jǐn)?shù)據(jù)拼接:
值得一提的是模塊里有個(gè)函數(shù),可以拿來直接判斷是否為閏年,當(dāng)然如果不喜歡,自己寫代碼通過閏年規(guī)則判斷也不復(fù)雜。寫完代碼,每天需要時(shí)在電腦運(yùn)行下該py代碼,即可自動(dòng)生成提示信息了。
手機(jī)端微信小程序
手機(jī)端,最初想法是利用微信接口,定時(shí)發(fā)送該文本信息,考慮到需要掛著號(hào)去自動(dòng)發(fā)送不太方便放棄。后來覺得如果把信息掛在微信小程序頁面上,既方便打開,又能實(shí)現(xiàn)信息文本的實(shí)時(shí)更新,而且自己也有些前端的基礎(chǔ),值得一試。
具體微信小程序的開發(fā)需要參照小程序開發(fā)文檔,基礎(chǔ)知識(shí)是前端HTML、和CSS等。編碼過程倒不算復(fù)雜,相當(dāng)于把編碼語言由轉(zhuǎn)為,再將生成的結(jié)果數(shù)據(jù)在wxml頁面綁定展示。
var date = new Date();
var?year?=?date.getFullYear();
var?month?=?date.getMonth()+1;
var?day?=?date.getDate();
var?week?=?['日',?'一',?'二',?'三',?'四',?'五',?'六']
var?weekday?=?week[date.getDay()]
var?total,dayOrder,percent,dateText;
if?((year%100==0&&year%400==0)||(year%100!=0&&year%4==0)){
total?=?366;
}else{
total?=?365
}
dayOrder?=?Math.ceil((new?Date()?-?new?Date(new?Date().getFullYear().toString()))?/?(24?*?60?*?60?*?1000));
percent?=?(dayOrder?/?total?*?100).toFixed(2);
dateText?=?"今天是"+year+"年"+month+"月"+day+"日,星期"+weekday+",今年的第"+dayOrder+"天,這一年"+percent+"%的時(shí)間已流逝";
為了方便手機(jī)端的復(fù)制操作,我在頁面上添加了一鍵復(fù)制的按鈕,可以直接將JS生成的文本信息復(fù)制到剪貼板。該功能的實(shí)現(xiàn)是調(diào)用微信小程序剪貼板的API:
copyText:?function(){
wx.setClipboardData({
data:?this.data.dateInfo,
????success(res)?{
???? wx.getClipboardData({
?????? success(res)?{
???????? console.log(res.data)?//?data
}
??????})
}
})
}
因?yàn)榫幋a工作量很小,整個(gè)過程繁瑣在注冊(cè)、提交、審核和發(fā)布小程序等流程。我也是花了些時(shí)間從頭研究其文檔,才勉強(qiáng)搞出這個(gè)簡(jiǎn)陋的單頁面小程序:
最終小程序功能很單一:首頁展示時(shí)間提醒,支持將提醒信息一鍵復(fù)制到剪貼板。至于是否授權(quán)登錄并不影響功能實(shí)現(xiàn),登陸后會(huì)簡(jiǎn)單展示微信頭像和昵稱。除了文字開頭處的小程序鏈接,這里也附上小程序二維碼方便感興趣的各位來體驗(yàn):
以上便是我對(duì)獲取時(shí)間提醒的代碼實(shí)現(xiàn),雖然確實(shí)折騰了些,但也開啟了微信小程序開發(fā)的支線探索任務(wù)。后續(xù)我也會(huì)嘗試優(yōu)化豐富該小程序,也期待你來分享好的建議和點(diǎn)子。
最近也有朋友問我還有沒有拿來練手的項(xiàng)目,我覺得除了網(wǎng)上搜值得參考的練習(xí)項(xiàng)目,完全可以自己去挖掘身邊的小麻煩來解決。我之前有幾篇涉及編碼的文章,也大都是由自己或朋友的想法出發(fā),借助編碼的手段將其快捷地實(shí)現(xiàn)。
在類似的想法驅(qū)動(dòng)過程中練習(xí)編碼,哪怕最終實(shí)現(xiàn)效果不如人意,學(xué)習(xí)過程也是大有收獲的。