js使用my97插件显示当前时间,且select控制计算时间差

Posted 会数数的小数点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js使用my97插件显示当前时间,且select控制计算时间差相关的知识,希望对你有一定的参考价值。

 做页面需要两个时间输入框一个显示当前时间,一个显示之前的时间,并且需要一个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     });

 

以上是关于js使用my97插件显示当前时间,且select控制计算时间差的主要内容,如果未能解决你的问题,请参考以下文章

django 使用第三方js库“My97DatePicker”作为时间选择插件

django 使用第三方js库“My97DatePicker”作为时间选择插件

日期时间插件WdatePicker.js使用方法

My97DatePicker日历插件

利用My97DatePicker实现年份多选

日期插件My97DatePicker