小程式--時間處理(顯示幾分鐘前,,幾小時前,,幾天前...)

来源:https://www.cnblogs.com/yk95/archive/2018/11/16/9970493.html
-Advertisement-
Play Games

效果圖 (通過js實現對時間處理); 這是時間處理的函數, 代碼註釋說明的也還清楚, 這是文件鏈接,可以直接打開,保存一下 https://blog-static.cnblogs.com/files/yk95/commonFunc.js 頁面數據是自己模擬的 接著頁面中去使用 時間處理的函數 和 假 ...


效果圖  (通過js實現對時間處理);

 

這是時間處理的函數, 代碼註釋說明的也還清楚,   這是文件鏈接,可以直接打開,保存一下 https://blog-static.cnblogs.com/files/yk95/commonFunc.js

 

 

 

 1 function commentTimeHandle(dateStr) {
 2     // dateStr = 2018-09-06 18:47:00" 測試時間
 3     var publishTime = dateStr / 1000,  //獲取dataStr的秒數  列印結果--1536230820000
 4         date = new Date(publishTime * 1000), //獲取dateStr的標準格式 console.log(date) 列印結果  Thu Sep 06 2018 18:47:00 GMT+0800 (中國標準時間)
 5         // 獲取date 中的 年 月 日 時 分 秒
 6         Y = date.getFullYear(),
 7         M = date.getMonth() + 1,
 8         D = date.getDate(),
 9         H = date.getHours(),
10         m = date.getMinutes(),
11         s = date.getSeconds();
12         // 對 月 日 時 分 秒 小於10時, 加0顯示 例如: 09-09 09:01
13         if (M < 10) {
14             M = '0' + M;
15         }
16         if (D < 10) {
17             D = '0' + D;
18         }
19         if (H < 10) {
20             H = '0' + H;
21         }
22         if (m < 10) {
23             m = '0' + m;
24         }
25         if (s < 10) {
26             s = '0' + s;
27         }
28         // console.log("年", Y); // 年 2018
29         // console.log("月", M); // 月 09
30         // console.log("日", D); // 日 06
31         // console.log("時", H); // 時 18
32         // console.log("分", m); // 分 47
33         // console.log("秒", s); // 秒 00
34     var nowTime = new Date().getTime() / 1000, //獲取此時此刻日期的秒數
35         diffValue = nowTime - publishTime,  // 獲取此時 秒數 與 要處理的日期秒數 之間的差值
36         diff_days = parseInt(diffValue / 86400),    // 一天86400秒 獲取相差的天數 取整
37         diff_hours = parseInt(diffValue / 3600),    // 一時3600秒
38         diff_minutes = parseInt(diffValue / 60),
39         diff_secodes = parseInt(diffValue);
40 
41         if (diff_days > 0 && diff_days < 3) {  //相差天數 0 < diff_days < 3 時, 直接返出
42             return diff_days + "天前";
43         } else if (diff_days <= 0 && diff_hours > 0) {
44             return diff_hours + "小時前";
45         } else if (diff_hours <= 0 && diff_minutes > 0) {
46             return diff_minutes + "分鐘前";
47         } else if (diff_secodes < 60) {
48             if (diff_secodes <= 0) {
49                 return "剛剛";
50             } else {
51                 return diff_secodes + "秒前";
52             }
53         } else if (diff_days >= 3 && diff_days < 30) {
54             return M + '-' + D + ' ' + H + ':' + m;
55         } else if (diff_days >= 30) {
56             return Y + '-' + M + '-' + D + ' ' + H + ':' + m;
57         }
58 }
59 module.exports = {
60     timeHandle: commentTimeHandle
61 }

頁面數據是自己模擬的

 1 const test0Data = [
 2     {
 3         content: "有人知道漫威電影的觀影順序嘛? 狗狗出門要牽狗繩,帶口罩啦!!!",
 4         time: '2018-11-16 10:19:05'
 5     },
 6     {
 7         content: "狗狗出門要牽狗繩,帶口罩啦!!!",
 8         time: '2018-11-14 10:19:05'
 9     },
10     {
11         content: "現在各種旅游年卡越來越多,不知道該辦哪一個?主要是想周末節假日帶孩子去轉轉,請各位瞭解的朋友們給點意見~謝謝~",
12         time: '2018-11-12 16:19:05'
13     },
14     {
15         content: "現在配個眼鏡都這麼貴了?最少1000多!這個行業也太暴利了吧!",
16         time: '2018-11-04 12:09:05'
17     },
18     {
19         content: "健身房跑路了,怎麼辦!剛辦的卡,3580。老闆跑路了,最近幾天一個員工沒有,好多會員把器材都搬走了,搬空了,怎麼辦?",
20         time: '2018-09-01 22:19:05'
21     },
22 ]
23 module.exports = {
24    test0Data: test0Data
25 }

接著頁面中去使用 時間處理的函數 和 假數據   

項目的目錄是這樣的    所以在頁面要通過 import 將其導入

 1 // pages/test0/test0.js
 2 import { timeHandle } from '../../utils/commonFunc';
 3 import { test0Data } from '../../utils/data';
 4 Page({
 5     data: {
 6         pageData: []
 7     },
 8     onLoad: function (options) {
 9         test0Data.forEach(item => {
10             /**
11                 replace(/-/g, '/') 是為了處理IOS不相容 2018-11-14 10:19:05
12                 new Date().getTime() 獲取 item 下時間的 毫秒值
13             */
14             let d = new Date(item.time.replace(/-/g, '/')).getTime();
15             item.time = timeHandle(d);
16         });
17     },
18     onShow: function() {
19         this.setData({
20             pageData: test0Data
21         })
22     }
23 })

 

因為之前項目的需求, 時間也較趕,  現在回過頭來溫習一下, 正好記錄一下.  

開心一刻:

  程xx遭遇車禍成植物人,醫生說她活下來的希望只有萬分之一,喚醒更為渺茫。她的同事和親人沒放棄,並根據程xx對testing痴迷的作風,每天都在她身邊念:“你測的模塊上線後回滾了。”奇跡發生了,程xx醒來第一句話:確認那模塊是我測的?

                          


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 網上的相關教程非常多,基礎知識自行搜索即可。 習題主要選自Orelly出版的《數據結構與演算法javascript描述》一書。 參考代碼可見: "https://github.com/dashnowords/blogs/tree/master/Structure/btree" 一.二叉樹的基本知識 基 ...
  • contentEditable ———————————————————————————————————————————————————————— 功能:允許用戶編輯元素中的內容。 功能說明: 該元素必須是可以獲得滑鼠焦點的元素,而且在點擊滑鼠後要向用戶提供一個插入符號,提示用戶該元素中的內容允許編輯 ...
  • 1、html常用標簽 <pre>...</pre>:標識預定義文本 <a>是anchor的縮寫,<a>標簽定義錨點和超鏈接,<a>常與href屬性連用表示超鏈接連接地址並用target來表示打開文檔的方法:_blank表示在新視窗中打開、_parent表示在父視窗中打開、_self表示在當前視窗中打 ...
  • / Zepto v1.2.0 zepto event ajax form ie zeptojs.com/license / (function (global, factory) { if (typeof define === 'function' && define.amd) define(fun ...
  • 前面說了Bootstrap4的下載和簡單使用,現在我們接著往下學習,Bootstrap4的響應式佈局主要依靠柵格系統來實現的。面老K先來講解一下Bootstrap4的柵格系統,讓你能夠更快的瞭解Bootstrap4.(PS:更詳細的介紹請訪問原K先生的博客) Bootstrap4柵格系統 柵格系統是 ...
  • 有時候,我們需要在實例創建過程中進行一些初始化的工作,以幫助我們完成項目中更複雜更豐富的需求開發,針對這樣的需求,Vue提供給我們一系列的鉤子函數。 vue生命周期 beforeCreate 在實例初始化之後,數據觀測 (data observer) 和 event/watcher 事件配置之前被調 ...
  • 日期插件rolldate.js的使用 下載地址:http://www.jq22.com/jquery-info19834 效果: 代碼: ...
  • 1.起因 在上個項目中,客戶希望時間選擇插件可以是ios風格的那種,但是找了很久,發現並沒有用vue的ios風格時間插件,於是自己便自己造了一個輪子. 2.插件效果 3.插件依賴以及安裝使用 插件依賴於better-scroll和vue,安裝流程如下: 4.源碼查看與調試 可以在我的Github上查 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...