`
uule
  • 浏览: 6359268 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

js中date与String转换

    博客分类:
  • JS
阅读更多

JS中字符转日期

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

直接new Date(remindTime ) 即可。

 

1.比较常用的方法,但繁琐:

主要使用Date的构造方法:Date(int year , int month , int day)

 

<script>
var str1 = "2009-8-9";
var arr1 = str1.split("-");
var date1 = new Date(arr1[0],parseInt(arr1[1])-1,arr1[2]);

var str2 = "2009-8-4";
var arr2 = str2.split("-");
var date2 = new Date(arr2[0],parseInt(arr2[1])-1,arr2[2]);

alert(date1>date2);//true
</script>

 2.简便方法:

var  str =   "2005-12-15"; 
var  d   =   new   Date(str.replace(/-/g,   "/"));

 

/-/g是js的正则表达式,匹配划线的

re   =   /pattern/[flags]

用   "/ "   字符分隔模式  
g   (全文查找出现的所有   pattern)  
i   (忽略大小写)  
m   (多行查找)

 Example:

 <script>
  	 var s = "2010-09-11";
  	 var s1 = "2010-09-12";
  	 var d = new Date(s.replace(/-/g,"/"));
  	 var d1 = new Date(s1.replace(/-/g,"/"));
  	 var m = (d1.getTime()-d.getTime())/(1000*60*60);
  	 alert(m);  //24
  </script>

 

 

JS比较时间:

 

<script language="JavaScript"> 

//时间对比函数,如果a>b返回1,如果a<b返回-1,相等返回0 
function comptime(a,b) 
{ 
var dateA = new Date("1900/1/1 " + a); 
var dateB = new Date("1900/1/1 " + b); 
if(isNaN(dateA) || isNaN(dateB)) return null; 
if(dateA > dateB) return 1; 
if(dateA < dateB) return -1; 
return 0; 
} 

var timeStart = "3:20"; 
var timeEnd = "2:11"; 

if(comptime(timeStart,timeEnd) != -1)
      alert("开始时间必须小于结束时间!"); 

</script>

 ----------------------------------------------------------------------------------------------------------------------

 

1、获取几天后时间的几种方法:

(本来考虑用Calendar方法,后来才发现js中根本无法使用Calendar)

   var dt = new Date();
  
 lont time = dt.valueOf() //返回1970到现在的毫秒数
 Long time = dt.getTime();//这就是距离1970年1月1日0点0分0秒的毫秒数
 Lont time = System.currentTimeMillis());//与上面的相同

   alert(new Date(1000*60*60*24 + dt.valueOf()))
   alert(new Date(1000*60*60*24 + date.getTime()))
	//一天后的日期

 抽离为方法:

var DAY = 1000*60*60*24;
	  Date.prototype.addDays = function(num){
		return new Date((num*DAY)+this.valueOf());
	  }
window.onload=function(){		
		var dt = new Date();
		alert(dt.addDays(2));
	}

 此处注意new Date().valueOf()也可获得毫秒数,这个以前根本都没用过,呵呵

 

2、date类型转Str类型:

//var mths = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"];
//var WEEKs =["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday"];
//var WEKs = [ "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" ];

 

   1、常用方法

//日期转Str
function toDDMMMYYYY(date) {
	var d = new Date(date.getTime());
	var dd = d.getDate() < 10 ? "0" + d.getDate() : d.getDate().toString();
	var mmm = mths[d.getMonth()];
	var yyyy = d.getFullYear().toString(); //2011
		//var YY = YYYY.substr(2);   // 11
	return dd + mmm + yyyy;
}

function toDDMMMYY(date) {
	var d = toDDMMMYYYY(date);
	return d.substring(0, 5) + d.substring(7, 9);
}

 这种方法限制死了最后的Str的格式,想要灵活使用,可用下面这种方法:

 

  2、自己定义格式:

Date.prototype.parseStr = function(format) {
	var YYYY = this.getFullYear(); //2011
	
	var YY = YYYY.substr(2);   // 11
		format = format.replaceAll("@YYYY@",YYYY);
		format = format.replaceAll("@YY@",YY);
		
	var M=this.getMonth()+1;
	var MM=(M<10)?"0"+M:M;
	var MMM=mths[M - 1];
		format=format.replaceAll("@MMM@",MMM);
		format=format.replaceAll("@MM@",MM);
		format=format.replaceAll("@M@",M);
		
	var D=this.getDate();
	var DD=(D<10)?"0"+D:D;
		format=format.replaceAll("@DD@",DD);
		format=format.replaceAll("@D@",D);
		
	var h=this.getHours();
	var hh=(h<10)?"0"+h:h;
		format=format.replaceAll("@hh@",hh);
		format=format.replaceAll("@h@",h);
	var m=this.getMinutes();
	var mm=(m<10)?"0"+m:m;
		format=format.replaceAll("@mm@",mm);
		format=format.replaceAll("@m@",m);
	var s=this.getSeconds();
	var ss=(s<10)?"0"+s:s;
		format=format.replaceAll("@ss@",ss);
		format=format.replaceAll("@s@",s);
	var dayOfWeek=this.getDay();
	    format=format.replaceAll("@WEEK@",WEEKs[dayOfWeek]);
		format=format.replaceAll("@WEK@",WEKs[dayOfWeek]);
	return format;
}

 使用时直接这样即可:

//var outdateStr = outdate.parseStr("@DD@-@MMM@-@YYYY@");

 此处需注意一点:

      js不提供replaceAll方法,只有replace方法 ,用for循环又有效率问题,最好的方法是用正则表达式

 

String.prototype.replaceAll = function (A,B){
           var C=this;
		for (var i=0;i<C.length;i++){
			C=C.replace(A,B);
		};
	  return C;
       }

 

String.prototype.replaceAll  = function(s1,s2){   
	 return this.replace(new RegExp(s1,"gm"),s2);   
    }

 自己定义了replaceAll方法后就可以像上面一样用replaceAll了。

 

js中replace方法:

                    replace(regexp/substr,replacement)

<script>
	var str="Visit Microsoft!"
	alert(str.replace("Microsoft", "W3School"));
	  //alert((str.replace(/Microsoft/, "W3School")); 也可以
</script>

另:

 由date求星期:
    WEKs[date.getDay()];

分享到:
评论
1 楼 heshifk 2016-04-18  
关于博主在博文开始说的:JS中字符转日期
var remindTime = "2008-04-02 10:08:44";
直接new Date(remindTime ) 即可。
这种写法在chrome下是可以的,但是拿到ie8下面就不行了,原生js应该是不支持这种写法,如果为了兼容性考虑,这种方法还是没法用的

相关推荐

    js date转String 日期字符串转换

    ### JavaScript Date对象转换为字符串 在JavaScript中,`Date`对象提供了多种方法来获取和设置日期及时间。本文将详细介绍如何将`...以上就是关于JavaScript中`Date`对象转换为字符串的相关知识点,希望对你有所帮助!

    js string转date(js字符串转换成日期,代码调试通)

    js string转date,js字符串转换成日期,此代码支持将datetime(年月日小时分秒格式)转换为js的Date类型,程序已调试并支持在HTML中运行、代码请见附件。

    JS简单实现String转Date的方法

    此外,JavaScript中直接使用`new Date("日期字符串")`也可以尝试将字符串转换为日期,但其解析规则依赖于浏览器实现,可能会导致兼容性问题。因此,推荐使用`Date.parse()`或自定义函数来确保跨浏览器的一致性。 ...

    js string转date.doc

    在JavaScript中,我们可以使用多种方式将字符串转换为Date对象。本文将深入探讨如何使用JavaScript将字符串转换为Date对象,以及Date对象的一些常用方法。 1. **字符串到Date的转换** JavaScript的`Date`构造函数...

    javascript的date转化器

    - `new Date(dateString)`: 通过日期字符串初始化。 - `new Date(year, month, day, hours, minutes, seconds, milliseconds)`: 通过指定年、月、日等参数初始化。 2. **获取日期和时间** - `getDate()`: 获取...

    Date4long2String

    日期转换,long类型时间转换成string类型

    js string转date

    在JavaScript中,将字符串转换为日期对象是常见的操作,特别是在处理与时间相关的业务逻辑时,如时间比较、格式化或计算时间差等。`Date`对象是JavaScript内置的日期和时间处理类,提供了多种方法来创建、操作和格式...

    时间字符串转换成日期对象datetime的方法

    您可能感兴趣的文章:sql语句中如何将datetime格式的日期转换为yy-mm-dd格式将WMI中的DateTime类型转换成VBS时间的函数代码LINQ字符串向datetime 转换时失败的处理方法Sql中将datetime转换成字符串的

    JS中Safari浏览器中的Date.docx

    在JavaScript中,Date对象用于表示特定的瞬间,可以是日期和时间。然而,在不同的浏览器中,尤其是Safari,处理Date对象的方式可能会有所不同。本篇文章主要关注在Safari浏览器中使用Date对象时需要注意的问题以及...

    js Date()日期函数浏览器兼容问题解决方法.docx

    如果你需要处理其他格式的日期时间字符串,你可以使用 JavaScript 的内置函数或者第三方库(如 moment.js 或 date-fns)来转换字符串格式。 例如,以下是一个简单的转换函数示例: ```javascript function ...

    原生JS:Date对象全面解析

    原生JavaScript中的Date对象是一个非常重要的内置对象,它提供了多种处理日期和时间的方法。本文将详细解析Date对象的构造函数用法、日期时间的表示以及一些相关的静态方法。 首先,Date对象是基于1970年1月1日...

    JS实现时间戳转换工具

    JavaScript(简称JS)是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发,包括处理用户交互、操作DOM、以及与服务器进行异步通信等。在本项目中,我们关注的是JS如何实现时间戳转换工具,这在不连外网的...

    Js转换时间戳、Unicode转中文

    在JavaScript(JS)编程中,时间戳转换和Unicode编码转换是常见的操作。下面将详细讲解这两个主题,并结合HTML和CSS的基础知识,探讨它们在实际应用中的使用。 **一、JavaScript时间戳转换** 1. **时间戳的概念**...

    JavaScript实现的SimpleDateFormat

    在JavaScript中,没有内置的`SimpleDateFormat`类,它是一个Java中的类,用于日期和时间的格式化。然而,由于JavaScript在处理日期时的功能相对有限,开发者常常需要自定义函数或者使用第三方库来实现类似的功能。这...

    字符串和时间戳相互转换

    3. JavaScript中的字符串与时间戳转换: - `new Date()` 构造函数用于将字符串转换为日期对象。 ```javascript var dateString = "2023-03-15T10:30:00"; var dateObject = new Date(dateString); ``` - `...

    js日期字符串互转

    在JavaScript中,日期和字符串之间的转换是常见的操作,特别是在处理用户输入、数据存储或与服务器交互时。本文将详细介绍如何在JavaScript中进行日期与字符串的互转,并提供一个实际示例来验证日期的有效性。 首先...

    javascript中Date format(js日期格式化)方法小结

    // 对Date的扩展,将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: /...

    Javascript中string转date示例代码

    在JavaScript中,将字符串转换为日期对象是一项常见且实用的操作。字符串转日期涉及到将...通过上述的详细步骤,可以较为准确地将特定格式的字符串转换为JavaScript的Date对象,以便在开发中进行进一步的处理和应用。

    JS点击按钮实现时间戳与标准日期的相互转换

    在JavaScript中,时间戳与标准日期之间的转换是常见的操作,特别是在处理前端交互和服务器通信时。本教程将指导你如何通过点击按钮实现这两种转换。首先,让我们了解基本概念。 时间戳,通常指的是从1970年1月1日...

Global site tag (gtag.js) - Google Analytics