js使用my97插件顯示當前時間,且select控制計算時間差

来源:http://www.cnblogs.com/xiaoshudian/archive/2017/06/17/7040727.html
-Advertisement-
Play Games

做頁面需要兩個時間輸入框一個顯示當前時間,一個顯示之前的時間,並且需要一個select下拉框控制兩個時間輸入框之間的差,效果如下圖: 這裡使用的是My97DatePicer,簡單方便,引入my97插件,設置input時間框的格式,這裡設置的時間最大是當前時間,開始時間框不能比結束時間框的時間大 弄完 ...


 做頁面需要兩個時間輸入框一個顯示當前時間,一個顯示之前的時間,並且需要一個select下拉框控制兩個時間輸入框之間的差,效果如下圖:

這裡使用的是My97DatePicer,簡單方便,引入my97插件,設置input時間框的格式,這裡設置的時間最大是當前時間,開始時間框不能比結束時間框的時間大

 1 <script src="lib/date/WdatePicker.js"></script>
 2 <body>
 3 選擇時間範圍:<select name="selectDate" id="sDate">
 4                 <option value="1">一天</option>
 5                 <option value="2">兩天</option>
 6                 <option value="3">三天</option>
 7                 <option value="7">一周</option>
 8                 <option value="14">二周</option>
 9                 <option value="21">三周</option>
10             </select>
11             <br/>
12             開始時間:<input type="text" id="startTime" class="Wdate" onFocus="WdatePicker({lang:'zh-cn',dateFmt:'yyyy-MM-dd HH:mm:ss',maxDate:'#F{$dp.$D(\'endTime\')}'&&'%y-%M-%d'})">
13             <br/>
14             結束時間:<input type="text" id="endTime" class="Wdate" onFocus="WdatePicker({lang:'zh-cn',dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'#F{$dp.$D(\'startTime\')}',maxDate:'%y-%M-%d'})">
15 </body>


弄完這些,就可以點出時間了,但需要的是進入頁面就顯示當時時間,原理就是獲取當前時間值再輸入到時間框里

獲取當時時間,因為獲得的月份是從0-11,所以獲得月份加一,才是真實月份

1 var date = new Date();
2 var year = date.getFullYear();
3 var month = date.getMonth()+1;
4 var day = date.getDate();
5 var hour = date.getHours();
6 var minutes = date.getMinutes();
7 var seconds = date.getSeconds();

將獲得的時間拼成字元串,因為考慮到獲取的時間數字小於10時,格式是這樣的2017-9-1 10:1:8,所以小於10時拼接一下,更符合習慣

 1 var endTimeStr,startTimeStr;
 2  var str1,str2,str3,str4,str5;
 3         if(month<10){
 4             str1='-0';
 5         }else {
 6             str1='-'
 7         }
 8 
 9         if(day<10){
10             str2='-0';
11         }else{
12             str2='-';
13         }
14 
15         if(hour<10){
16             str3=' 0';
17         }else {
18             str3=' ';
19         }
20         if(minutes<10){
21             str4=':0';
22         }else {
23             str4=':';
24         }
25         if(seconds<10){
26             str5=':0';
27         }else {
28             str5=':';
29         }
30 
31 
32     endTimeStr = year+str1+month+str2+day+str3 +hour+str4+minutes+str5+seconds;

這得到的是結束時間的,因為select下拉框控制的範圍是到當前時間的,開始時間受下拉框限制,我們需要找出時間差

這是當前時間的毫秒數 1 var time = date.getTime(); 


這是下拉框控制的時間範圍,轉化為毫秒數

var cTime = $('#sDate').val()*24*3600*1000;

當前時間-下拉框時間=開始時間,再將開始時間轉化為標準的格式

 1 var dif = time-cTime;
 2 var nTime = new Date(dif);
 3 
 4 var year1 = nTime.getFullYear();
 5 var month1 = nTime.getMonth()+1;
 6 
 7 var day1 = nTime.getDate();
 8 
 9 var hour1 = nTime.getHours();
10 var minutes1 = nTime.getMinutes();
11 var seconds1 = nTime.getSeconds();
12 var str11.str12,str13,str14,str15;
13 
14         if(month1<10){
15             str11='-0';
16         }else {
17             str11='-'
18         }
19 
20         if(day1<10){
21             str12='-0';
22         }else{
23             str12='-';
24         }
25 
26         if(hour1<10){
27             str13=' 0';
28         }else {
29             str13=' ';
30         }
31         if(minutes1<10){
32             str14=':0';
33         }else {
34             str14=':';
35         }
36         if(seconds1<10){
37             str15=':0';
38         }else {
39             str15=':';
40         }
41 
42     startTimeStr = year1+str11+month1+str12+day1+str13 +hour1+str14+minutes1+str15+seconds1;

得到開始時間和結束時間將它們輸入到時間輸入框即可

$('#endTime').val(endTimeStr);
$('#startTime').val(startTimeStr);

可將以上js寫成一個函數,select控制函數執行控制時間範圍,完整如下

  1 function timeSet(){
  2   
  3          var date = new Date();
  4          var time = date.getTime();
  5 
  6          var year = date.getFullYear();
  7          var month = date.getMonth()+1;
  8         
  9          var day = date.getDate();
 10 
 11          
 12         
 13 
 14         var hour = date.getHours();
 15         var minutes = date.getMinutes();
 16         var seconds = date.getSeconds();
 17         var endTimeStr,startTimeStr;
 18         var str1,str2,str3,str4,str5;
 19         if(month<10){
 20             str1='-0';
 21         }else {
 22             str1='-'
 23         }
 24 
 25         if(day<10){
 26             str2='-0';
 27         }else{
 28             str2='-';
 29         }
 30 
 31         if(hour<10){
 32             str3=' 0';
 33         }else {
 34             str3=' ';
 35         }
 36         if(minutes<10){
 37             str4=':0';
 38         }else {
 39             str4=':';
 40         }
 41         if(seconds<10){
 42             str5=':0';
 43         }else {
 44             str5=':';
 45         }
 46 
 47 
 48     endTimeStr = year+str1+month+str2+day+str3 +hour+str4+minutes+str5+seconds;
 49  //求時間差,
 50  var cTime = $('#sDate').val()*24*3600*1000;
 51     
 52     var dif = time-cTime;
 53     
 54     var nTime = new Date(dif);
 55 
 56     var year1 = nTime.getFullYear();
 57      var month1 = nTime.getMonth()+1;
 58 
 59      var day1 = nTime.getDate();
 60 
 61     var hour1 = nTime.getHours();
 62     var minutes1 = nTime.getMinutes();
 63     var seconds1 = nTime.getSeconds();
 64 
 65     var str11.str12,str13,str14,str15;
 66 
 67         if(month1<10){
 68             str11='-0';
 69         }else {
 70             str11='-'
 71         }
 72 
 73         if(day1<10){
 74             str12='-0';
 75         }else{
 76             str12='-';
 77         }
 78 
 79         if(hour1<10){
 80             str13=' 0';
 81         }else {
 82             str13=' ';
 83         }
 84         if(minutes1<10){
 85             str14=':0';
 86         }else {
 87             str14=':';
 88         }
 89         if(seconds1<10){
 90             str15=':0';
 91         }else {
 92             str15=':';
 93         }
 94 
 95     startTimeStr = year1+str11+month1+str12+day1+str13 +hour1+str14+minutes1+str15+seconds1;
 96 
 97     $('#endTime').val(endTimeStr);
 98     $('#startTime').val(startTimeStr);
 99     }
100 
101 
102     timeSet();
103 
104     $('#sDate').on('change',function(){
105 
106         timeSet();
107     
108     });

 


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

-Advertisement-
Play Games
更多相關文章
  • 今天又給Jquery插件“IT小鮮肉 Tree”添加了自定義圖標、自定義標簽顯示功能;目前“IT小鮮肉 Tree”已經具備有checkbox、drag and drop 等基本功能。 廢話不說,直接上圖: 自我感覺良好。主要設置了數據的iconUrl屬性,代碼如下: 還可以通過設置iconCls實現 ...
  • $("#wetg_Left_ipt2").bind("input",function() { //獲取游標位置 var Txt1Curs = $scope.getTxt1CursorPosition(this); var oldtexv = this.value; //格式化字元串4位分割,去掉非字 ...
  • 平時在工作中,偶爾會遇到老大讓你修改原來寫好的樣式,如果修改的多的話,修改起來是非常麻煩的.他不像js一樣,定義變數、函數,需要修改某些值,直接修改方法就行了。less的出現,恰恰幫我們解決了這個問題 在這呢,我們簡要說明一下less: LESSCSS是一種動態樣式語言,屬於CSS預處理語言的一種, ...
  • 三種繼承css方式 1.段內繼承 樣式原文 原文變成 紅色, 原文字體變大 兩個都是通過改變樣式屬性的值去實現的. 語法詳解: 1.每個樣式屬性會有不同的值, "color: red" 通過冒號表達color的屬性. 2.屬性間要用分號間隔和閉合 3.font-size 屬於複合屬性 2. 文檔內繼... ...
  • 包管理器、載入器、測試框架、運行器、QA、MVC框架和庫、模板引擎、數據可視化、時間軸、編輯器等等。 ...
  • 我認為按鈕的繪製分以下三個步驟 第一步,繪製按鈕的輪廓 選擇合適的html標簽,設置輪廓的CSS 選擇合適的html標簽,設置輪廓的CSS 效果圖 仿IOS-1.jpg 仿IOS-1.jpg 第二步,繪製按鈕的預設狀態 這一步很重要,由於我們不會再給html文件添加其他的標簽,所以我們需要用 :af ...
  • 相關技能 HTML5+CSS3(實現頁面佈局和動態效果) Iconfont(使用矢量圖標庫添加播放器相關圖標) LESS (動態CSS編寫) jQuery(快速編寫js腳本) gulp+webpack(自動化構建工具,實現LESS,CSS,JS等編譯和壓縮代碼) 實現的功能 播放暫停(點擊切換播放狀 ...
  • 今天介紹一個網路上並不常用的插件two.js,剛開始學習的過程中,發現網上並沒有合適的教程,在此發表基本操作 two.js是一款網頁二維繪圖軟體,可以在指定區域內產生自設的各種動畫效果 下載網址如下: https://two.js.org/#download class1: 一:如何使用: 首先在頁 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...