JS转换时间格式

来源:互联网 发布:国外期刊数据库 编辑:程序博客网 时间:2024/05/22 18:27
[javascript] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. var myDate = new Date();  
  2. myDate.getYear(); //获取当前年份(2位)  
  3. myDate.getFullYear(); //获取完整的年份(4位,1970-????)  
  4. myDate.getMonth(); //获取当前月份(0-11,0代表1月)         // 所以获取当前月份是myDate.getMonth()+1;   
  5. myDate.getDate(); //获取当前日(1-31)  
  6. myDate.getDay(); //获取当前星期X(0-6,0代表星期天)  
  7. myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)  
  8. myDate.getHours(); //获取当前小时数(0-23)  
  9. myDate.getMinutes(); //获取当前分钟数(0-59)  
  10. myDate.getSeconds(); //获取当前秒数(0-59)  
  11. myDate.getMilliseconds(); //获取当前毫秒数(0-999)  
  12. myDate.toLocaleDateString(); //获取当前日期  
  13. var mytime=myDate.toLocaleTimeString(); //获取当前时间  
  14. myDate.toLocaleString( ); //获取日期与时间  
  15.   
  16. ==========================================================================  
  17.   
  18. JS获取当前时间戳的方法-JavaScript 获取当前毫秒时间戳有以下三种方法:  
  19.   
  20. var timestamp =Date.parse(new Date());    结果:1280977330000       //不推荐; 毫秒改成了000显示  
  21.   
  22. var timestamp =(new Date()).valueOf();       结果:1280977330748       //推荐;   
  23.   
  24. var timestamp=new Date().getTime();         结果:1280977330748        //推荐;   
  25.   
  26.    
  27.   
  28. js中单独调用new Date();  显示这种格式  Mar 31 10:10:43 UTC+0800 2012  
  29.   
  30. 但是用new Date() 参与计算会自动转换为从1970.1.1开始的毫秒数  
  31.   
  32. --------------------------------------------------------------------------------------------------  
  33.   
  34. 将字符串形式的日期转换成日期对象  
  35.   
  36. var strTime="2011-04-16";    //字符串日期格式             
  37. var date= new Date(Date.parse(strTime.replace(/-/g,  "/")));      //转换成Data();  
  38.   
  39. --------------------------------------------------------------------------------------------------  
  40.   
  41. new Date() ;     //参数可以为整数; 也可以为字符串; 但格式必须正确  
  42.   
  43. new Date(2009,1,1);       //正确  
  44.   
  45. new Date("2009/1/1");    //正确  
  46.   
  47. new Date("2009-1-1");    //错误  
  48.   
  49. new Date( year, month, date, hrs, min, sec)  按给定的参数创建一日期对象  
  50.   参数说明:  
  51.   year的值为:需设定的年份-1900。例如需设定的年份是1997则year的值应为97,即1997-1900的结果。所以Date中可设定的年份最小为1900;  
  52.   month的值域为0~11,0代表1月,11表代表12月;  
  53.   date的值域在1~31之间;  
  54.   hrs的值域在0~23之间。从午夜到次日凌晨1点间hrs=0,从中午到下午1点间hrs=12;  
  55.   min和sec的值域在0~59之间。  
  56.   例 Date day=new Date(11,3,4);  
  57.   //day中的时间为:04-Apr-11 12:00:00 AM  
  58.   
  59.   
  60.        另外,还可以给出不正确的参数。  
  61.   例 设定时间为1910年2月30日,它将被解释成3月2日。  
  62.   Date day=new Date(10,1,30,10,12,34);  
  63.   System.out.println("Day's date is:"+day);  
  64.   //打印结果为:Day's date is:Web Mar 02 10:13:34 GMT+08:00 1910  
  65. --------------------------------------------------------------------------------------------------  



有时候做项目会用到js的date日期格式,因为Date()返回的格式不是我们需要的,

Date()返回格式:

Thu Mar 19 2015 12:00:00 GMT+0800 (中国标准时间)

而我们则需要这样的格式:

2015-3-19 12:00:00

除非是在后台处理好时间格式,然后在页面直接显示。


那如何用js格式化date日期值呢?

1.日期格式转为日期标准字符串:2015-03-19

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. var formatDate = function (date) {  
  2.     var y = date.getFullYear();  
  3.     var m = date.getMonth() + 1;  
  4.     m = m < 10 ? '0' + m : m;  
  5.     var d = date.getDate();  
  6.     d = d < 10 ? ('0' + d) : d;  
  7.     return y + '-' + m + '-' + d;  
  8. };  


2.js方法返回值:2015-03-19 12:00:00
[javascript] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. var formatDateTime = function (date) {  
  2.                 var y = date.getFullYear();  
  3.                 var m = date.getMonth() + 1;  
  4.                 m = m < 10 ? ('0' + m) : m;  
  5.                 var d = date.getDate();  
  6.                 d = d < 10 ? ('0' + d) : d;  
  7.                 var h = date.getHours();  
  8.                 h=h < 10 ? ('0' + h) : h;  
  9.                 var minute = date.getMinutes();  
  10.                 minute = minute < 10 ? ('0' + minute) : minute;  
  11.                 var second=date.getSeconds();  
  12.                 second=second < 10 ? ('0' + second) : second;  
  13.                 return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;  
  14.             };  



调用:formatDate(Date())   formatDate(Date())

3.时间戳转为日期格式

[javascript] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. //时间戳转日期格式  
  2.       var formatDateTime3 = function(time, format){  
  3.           var t = new Date(time);  
  4.           var tf = function(i){return (i < 10 ? '0' : '') + i};  
  5.           return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a){  
  6.               switch(a){  
  7.                   case 'yyyy':  
  8.                       return tf(t.getFullYear());  
  9.                       break;  
  10.                   case 'MM':  
  11.                       return tf(t.getMonth() + 1);  
  12.                       break;  
  13.                   case 'mm':  
  14.                       return tf(t.getMinutes());  
  15.                       break;  
  16.                   case 'dd':  
  17.                       return tf(t.getDate());  
  18.                       break;  
  19.                   case 'HH':  
  20.                       return tf(t.getHours());  
  21.                       break;  
  22.                   case 'ss':  
  23.                       return tf(t.getSeconds());  
  24.                       break;  
  25.               }  
  26.           })  
  27.       };  

使用:

4.时间格式字符串转为时间戳(毫秒)

[javascript] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. var time1=‘2016-01-01 17:22:37’;  
  2. var date=new Date(time1.replace(/-/g, '/'));  //开始时间  
  3. var time2=date.getTime();  


如何将2015-03-12 12:00 转换成标准时间()?

Thu Mar 19 2015 12:00:00 GMT+0800 (中国标准时间)

js方法返回值:Thu Mar 19 2015 12:00:00 GMT+0800 (中国标准时间)

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. var parserDate = function (date) {  
  2.     var t = Date.parse(date);  
  3.     if (!isNaN(t)) {  
  4.         return new Date(Date.parse(date.replace(/-/g, "/")));  
  5.     } else {  
  6.         return new Date();  
  7.     }  
  8. };  


调用:parserDate("2015-03-19 12::00:00")

5.判断时间间隔不超过24个小时

JS中字符转日期

var remindTime = "2008-04-02 10:08:44"; 

直接new Date(remindTime ) 即可。


var date1=new Date("2004/09/16 20:08:00");
var date2=new Date("2004/09/17 20:08:00");
var date3=(date2.getTime()-date1.getTime())/1000;   //相差秒数

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. String tt="2015-11-25 18:18:18 - 2015-11-26 12:09:27";    
  2. String start=tt.substring(0,19);    
  3. String end=tt.substring(22,tt.length());    
  4.   
  5.  var startTime=$("#searchDateRange").val().substring(0,19).replace(/-/g, '/');  
  6.         var endTime=$("#searchDateRange").val().substring(22,41).replace(/-/g, '/');  
  7.         var date1=new Date(startTime);  //开始时间  
  8.         var date2=new Date(endTime);    //结束时间  
  9.   
  10.         var date3=date2.getTime()-date1.getTime()  //时间差的毫秒数  
  11.         if(date3>60*60*24*1000){  
  12.           alert("开始时间与结束时间间隔大于24小时!");  
  13.           return false;  
  14.         }  


js时间戳怎么转成日期格式
这个在主群里有朋友§☆釺哖蟲...o问js时间戳怎么转成日期格式 ,他的问题是这样的
/Date(1354116249000)/ 这样的格式怎么转成时间格式
这是从C#的Datatime格式通过Json传到Js里面的,
下面是我们的提供的方法
js需要把时间戳转为为普通格式,一般的情况下可能用不到的,
下面先来看第一种吧

 

复制代码
<script>     function getLocalTime(nS) {        return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');     }     alert(getLocalTime(1293072805));     </script> 
复制代码

 

结果是
2010年12月23日 10:53
第二种

 

<script>     function getLocalTime(nS) {         return new Date(parseInt(nS) * 1000).toLocaleString().substr(0,17)}     alert(getLocalTime(1293072805));     </script> 

 

如果你想得到这样格式的怎么办呢?
2010-10-20 10:00:00
看下面代码吧

复制代码
 <script>         function getLocalTime(nS) {            return new Date(parseInt(nS) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");          }         alert(getLocalTime(1177824835));         </script>  
复制代码

也可以这样写的

复制代码
function   formatDate(now)   {                   var   year=now.getYear();                   var   month=now.getMonth()+1;                   var   date=now.getDate();                   var   hour=now.getHours();                   var   minute=now.getMinutes();                   var   second=now.getSeconds();                   return   year+"-"+month+"-"+date+"   "+hour+":"+minute+":"+second;                   }                            var   d=new   Date(1230999938);                   alert(formatDate(d)); 
复制代码

好了问题解决
需要注意的是
不要把字符串中的Date(这样的字符也传进去,要先处理一下,这样很方便 就能处理的
可以使用replace方法
如下:

replace("/Date(","").replace(")/","");

 

 


js时间戳怎么转成日期格式
这个在主群里有朋友§☆釺哖蟲...o问js时间戳怎么转成日期格式 ,他的问题是这样的
/Date(1354116249000)/ 这样的格式怎么转成时间格式
这是从C#的Datatime格式通过Json传到Js里面的,
下面是我们的提供的方法
js需要把时间戳转为为普通格式,一般的情况下可能用不到的,
下面先来看第一种吧

 

复制代码
<script>     function getLocalTime(nS) {        return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');     }     alert(getLocalTime(1293072805));     </script> 
复制代码

 

结果是
2010年12月23日 10:53
第二种

 

<script>     function getLocalTime(nS) {         return new Date(parseInt(nS) * 1000).toLocaleString().substr(0,17)}     alert(getLocalTime(1293072805));     </script> 

 

如果你想得到这样格式的怎么办呢?
2010-10-20 10:00:00
看下面代码吧

复制代码
 <script>         function getLocalTime(nS) {            return new Date(parseInt(nS) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");          }         alert(getLocalTime(1177824835));         </script>  
复制代码

也可以这样写的

复制代码
function   formatDate(now)   {                   var   year=now.getYear();                   var   month=now.getMonth()+1;                   var   date=now.getDate();                   var   hour=now.getHours();                   var   minute=now.getMinutes();                   var   second=now.getSeconds();                   return   year+"-"+month+"-"+date+"   "+hour+":"+minute+":"+second;                   }                            var   d=new   Date(1230999938);                   alert(formatDate(d)); 
复制代码

好了问题解决
需要注意的是
不要把字符串中的Date(这样的字符也传进去,要先处理一下,这样很方便 就能处理的
可以使用replace方法
如下:

replace("/Date(","").replace(")/","");

 

 后台时间返回前台变一串数字的话

数据库查出来的明明是时间返回却变成一串无规律的数字。解决方法

/**
 * 时间戳转时间格式
 * @param
  jsondate 得到的number 型时间数
 */

  function getLocalTime(jsondate) { 
jsondate=""+jsondate+"";//因为jsonDate是number型的indexOf会报错
if (jsondate.indexOf("+") > 0) {
                jsondate = jsondate.substring(0, jsondate.indexOf("+"));
            }
            else if (jsondate.indexOf("-") > 0) {
                jsondate = jsondate.substring(0, jsondate.indexOf("-"));
            }
            var date = new Date(parseInt(jsondate, 10));
            var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
            var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
            var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
            var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
            var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
            return date.getFullYear() + "-" + month + "-" + currentDate + " " + hours + ":" + minutes + ":" + seconds;
}   

问题解决(ps:有一点要注意的是得到的可能是number型的,在js中不能使用indexOf方法,需要加引号转为字符创格式)


0 0
原创粉丝点击