`
jackeysion
  • 浏览: 129473 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

js日期格式化(字符串转日期<-->日期转字符串)

阅读更多
js字符串转日期型


/** year : /yyyy/ */
var _y4 = "([0-9]{4})";
/** year : /yy/ */
var _y2 = "([0-9]{2})";
/** index year */
var _yi = -1;
/** month : /MM/ */
var _M2 = "(0[1-9]|1[0-2])";
/** month : /M/ */
var _M1 = "([1-9]|1[0-2])";
/** index month */
var _Mi = -1;
/** day : /dd/ */
var _d2 = "(0[1-9]|[1-2][0-9]|30|31)";
/** day : /d/ */
var _d1 = "([1-9]|[1-2][0-9]|30|31)";
/** index day */
var _di = -1;
/** hour : /HH/ */
var _H2 = "([0-1][0-9]|20|21|22|23)";
/** hour : /H/ */
var _H1 = "([0-9]|1[0-9]|20|21|22|23)";
/** index hour */
var _Hi = -1;
/** minute : /mm/ */
var _m2 = "([0-5][0-9])";
/** minute : /m/ */
var _m1 = "([0-9]|[1-5][0-9])";
/** index minute */
var _mi = -1;
/** second : /ss/ */
var _s2 = "([0-5][0-9])";
/** second : /s/ */
var _s1 = "([0-9]|[1-5][0-9])";
/** index month */
var _si = -1;
var regexp;
function getDate(dateString, formatString) {
	if (validateDate(dateString, formatString)) {
		var now = new Date();
		var vals = regexp.exec(dateString);
		var index = validateIndex(formatString);
		var year = index[0] >= 0 ? vals[index[0] + 1] : now.getFullYear();
		var month = index[1] >= 0 ? (vals[index[1] + 1] - 1) : now.getMonth();
		var day = index[2] >= 0 ? vals[index[2] + 1] : now.getDate();
		var hour = index[3] >= 0 ? vals[index[3] + 1] : "";
		var minute = index[4] >= 0 ? vals[index[4] + 1] : "";
		var second = index[5] >= 0 ? vals[index[5] + 1] : "";
		var validate;
		if (hour == "") {
			validate = new Date(year, month, day);
		} else {
			validate = new Date(year, month, day, hour, minute, second);
		}
		if (validate.getDate() == day) {
			return validate;
		}
	}
	alert("wrong date");
}
function validateDate(dateString, formatString) {
	var dateString = trim(dateString);
	if (dateString == "") {
		return;
	}
	var reg = formatString;
	reg = reg.replace(/yyyy/, _y4);
	reg = reg.replace(/yy/, _y2);
	reg = reg.replace(/MM/, _M2);
	reg = reg.replace(/M/, _M1);
	reg = reg.replace(/dd/, _d2);
	reg = reg.replace(/d/, _d1);
	reg = reg.replace(/HH/, _H2);
	reg = reg.replace(/H/, _H1);
	reg = reg.replace(/mm/, _m2);
	reg = reg.replace(/m/, _m1);
	reg = reg.replace(/ss/, _s2);
	reg = reg.replace(/s/, _s1);
	reg = new RegExp("^" + reg + "$");
	regexp = reg;
	return reg.test(dateString);
}
function validateIndex(formatString) {
	var ia = new Array();
	var i = 0;
	_yi = formatString.search(/yyyy/);
	if (_yi < 0) {
		_yi = formatString.search(/yy/);
	}
	if (_yi >= 0) {
		ia[i] = _yi;
		i++;
	}
	_Mi = formatString.search(/MM/);
	if (_Mi < 0) {
		_Mi = formatString.search(/M/);
	}
	if (_Mi >= 0) {
		ia[i] = _Mi;
		i++;
	}
	_di = formatString.search(/dd/);
	if (_di < 0) {
		_di = formatString.search(/d/);
	}
	if (_di >= 0) {
		ia[i] = _di;
		i++;
	}
	_Hi = formatString.search(/HH/);
	if (_Hi < 0) {
		_Hi = formatString.search(/H/);
	}
	if (_Hi >= 0) {
		ia[i] = _Hi;
		i++;
	}
	_mi = formatString.search(/mm/);
	if (_mi < 0) {
		_mi = formatString.search(/m/);
	}
	if (_mi >= 0) {
		ia[i] = _mi;
		i++;
	}
	_si = formatString.search(/ss/);
	if (_si < 0) {
		_si = formatString.search(/s/);
	}
	if (_si >= 0) {
		ia[i] = _si;
		i++;
	}
	var ia2 = new Array(_yi, _Mi, _di, _Hi, _mi, _si);
	for (i = 0; i < ia.length - 1; i++) {
		for (j = 0; j < ia.length - 1 - i; j++) {
			if (ia[j] > ia[j + 1]) {
				temp = ia[j];
				ia[j] = ia[j + 1];
				ia[j + 1] = temp;
			}
		}
	}
	for (i = 0; i < ia.length; i++) {
		for (j = 0; j < ia2.length; j++) {
			if (ia[i] == ia2[j]) {
				ia2[j] = i;
			}
		}
	}
	return ia2;
}
function trim(str) {
	return str.replace(/(^\s*)|(\s*$)/g, "");
}
 

日期型格式化
Date.prototype.format = function(format)
{
	var o = {
	
		"M+" : this.getMonth()+1, //month
		"d+" : this.getDate(),//day
		"h+" : this.getHours(), //hour
		"m+" : this.getMinutes(), //minute
		"s+" : this.getSeconds(), //second
		"q+" : Math.floor((this.getMonth()+3)/3), //quarter
		"S" : this.getMilliseconds() //millisecond
	}

	if(/(y+)/.test(format)) 
		format = format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
	for(var k in o)
		if(new RegExp("("+ k +")").test(format))
			format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] :("00"+ o[k]).substr((""+ o[k]).length));
	return format;
}
分享到:
评论

相关推荐

    JavaScript格式化字符串工具--sprintf

    这是一个JavaScript格式化字符串的工具,详细: http://blog.csdn.net/loocao/archive/2010/01/07/5149420.aspx

    js日期字符串互转

    本文将详细介绍如何在JavaScript中进行日期与字符串的互转,并提供一个实际示例来验证日期的有效性。 首先,JavaScript提供了内置的`Date`对象来处理日期和时间。我们可以创建一个新的`Date`实例,或者解析一个日期...

    Asp.net中的日期转化为字符串汇总

    `DateTime.ToString()` 方法是最基础的日期转字符串方式,它允许我们自定义格式化字符串。例如: ```csharp DateTime date = DateTime.Now; string strDate = date.ToString("yyyy-MM-dd HH:mm:ss"); ``` 在这...

    JavaScript时间日期操作实例小结【5个示例】

    `toLocaleString()`方法可以按照本地时间格式化日期,而`toISOString()`则返回ISO 8601格式的日期时间字符串。如果需要自定义格式,可以使用`getFullYear()`、`getMonth()`等方法组合起来构建字符串。 5. 增加或...

    JavaScript实现字符串与日期的互相转换及日期的格式化

    通过对格式化字符串中的占位符进行替换,可以灵活地控制日期的显示格式。举例来说,如果你需要将日期格式化为“年年年年-月月-日日 时:分:秒 星期几”,可以通过调用`formatDate`函数并传入相应的格式化字符串来实现...

    将string类型xml字符串转为json字符串

    String xmlString = "&lt;book&gt;&lt;title&gt;标题&lt;/title&gt;&lt;author&gt;作者&lt;/author&gt;&lt;year&gt;年份&lt;/year&gt;&lt;/book&gt;"; // 将XML字符串转换为JSON对象 JSONObject jsonObject = XML.toJSONObject(xmlString); // 输出JSON字符串...

    json字符串转成 Map/List

    在Java中,将JSON字符串转换为Map或List是常见的操作,这在处理服务器返回的数据或者进行数据序列化时非常有用。 JSON字符串的结构主要包括对象(键值对的集合,用花括号{}包围)和数组(有序元素的集合,用方括号...

    js date转String 日期字符串转换

    ### JavaScript Date对象转换为字符串 在JavaScript中,`Date`对象提供了多种方法来获取和设置日期及时间。本文将详细介绍如何将`Date`对象转换成字符串格式,这对于数据展示、存储以及传输等场景非常有用。 #### ...

    java对象转换为json字符串或字符串数组

    在Java开发中,将Java对象转换为JSON字符串或字符串数组是一项常见的任务,特别是在与前端交互、数据存储或者网络传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    json2.js 字符串转转json对象工具

    总的来说,json2.js是解决JSON处理兼容性问题的一个工具,它提供了一种安全且标准化的方式来在JavaScript中进行JSON字符串与对象之间的转换,尤其对于那些不支持原生JSON操作的老版本浏览器而言。

    Javascript基础知识整理.doc

    使用字符串方法来格式化字串,例如:&lt;script language="JavaScript"&gt;&lt;!--var myVariable = "Hello there";document.write(myVariable.big() + "&lt;br&gt;");document.write(myVariable.blink() + "&lt;br&gt;");...// --&gt;&lt;/...

    javascript的trim和日期时间格式化函数

    本文将详细介绍如何利用自定义方法实现字符串的Trim功能以及日期时间的格式化功能。 #### Trim函数 在JavaScript中,Trim功能主要用于去除字符串两端的空白字符。虽然ES6引入了`String.prototype.trim()`,但在...

    js日期格式转换

    在JavaScript中,日期...总的来说,JavaScript中处理日期格式化的方式多样,既可以使用内置的方法和字符串操作,也可以利用`Intl.DateTimeFormat`API来实现更复杂的需求。在实际项目中,应根据需求选择最适合的方案。

    Js获取当前日期时间及格式化代码

    - 其他日期时间脚本库方法包括日期计算、日期比较、日期转字符串、日期分割为数组、取日期的部分信息、获取日期所在月的最大天数、判断日期所在年的第几周、字符串转换为日期型、验证日期有效性、完整日期时间检查...

    js移动端日期时间选择控件

    4. **格式化日期时间**: 根据需要,使用JavaScript将 `Date` 对象转换为合适的字符串格式,如 "YYYY-MM-DD HH:mm"。 然而,原生JS实现这样的控件可能涉及较多的代码和细节处理,因此许多开发者倾向于使用现成的库,...

    js 日期格式 脚本下载 例子

    &lt;title&gt;JS日期格式化示例&lt;/title&gt; &lt;script src="Control.js"&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;button onclick="document.getElementById('output').innerText = formatDate(new Date());"&gt;获取当前时间&lt;/button&gt; &lt;p ...

    js通用日期格式化工具 date.js

    js通用日期格式化工具,直接引用该工具类就可以使用,方便快捷,建议大家收藏此工具类,该工具很好的解决了前端页面显示日期格式问题

    JAVA字符串转日期或日期转字符串.docx

    `java.text.SimpleDateFormat`是Java提供的一种强大的日期和时间格式化工具,它可以将日期对象转换为字符串,也可以将字符串解析为日期对象。下面我们将深入探讨如何使用`SimpleDateFormat`进行日期与字符串之间的...

    详解C++中十六进制字符串转数字(数值)

    功 能: 从字符串格式化输入 用 法: int sscanf(char *string, char *format[,argument,…]);  以上的 format 为 %x 就是将字符串格式化为 16 进制数  例子:  #include &lt;stdio&gt; void main() { char* p = ...

    JavaScript实现字符串与日期的相互转换及日期的格式化_.docx

    下面将详细介绍如何使用JavaScript实现字符串与日期的相互转换以及日期的格式化。 首先,我们来看如何将字符串转换为日期对象。在提供的代码中,有一个名为`stringToDate`的函数,它接受一个形如"yyyy-MM-dd"格式的...

Global site tag (gtag.js) - Google Analytics