来源:http://gwbasic.iteye.com
/*
将String类型解析为Date类型.
parseDate('2006-1-1') return new Date(2006,0,1)
parseDate(' 2006-1-1 ') return new Date(2006,0,1)
parseDate('2006-1-1 15:14:16') return new Date(2006,0,1,15,14,16)
parseDate(' 2006-1-1 15:14:16 ') return new Date(2006,0,1,15,14,16);
parseDate('2006-1-1 15:14:16.254') return new Date(2006,0,1,15,14,16,254)
parseDate(' 2006-1-1 15:14:16.254 ') return new Date(2006,0,1,15,14,16,254)
parseDate('不正确的格式') retrun null
*/
function parseDate(str){
if(typeof str == 'string'){
var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);
if(results && results.length>3)
return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));
results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);
if(results && results.length>6)
return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));
results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);
if(results && results.length>7)
return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]),parseInt(results[7]));
}
return null;
}
/*
将Date/String类型,解析为String类型.
传入String类型,则先解析为Date类型
不正确的Date,返回 ''
如果时间部分为0,则忽略,只返回日期部分.
*/
function formatDate(v){
if(typeof v == 'string') v = parseDate(v);
if(v instanceof Date){
var y = v.getFullYear();
var m = v.getMonth() + 1;
var d = v.getDate();
var h = v.getHours();
var i = v.getMinutes();
var s = v.getSeconds();
var ms = v.getMilliseconds();
if(ms>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s + '.' + ms;
if(h>0 || i>0 || s>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
return y + '-' + m + '-' + d;
}
return '';
}
/*
将String类型解析为Date类型.
parseDate('2006-1-1') return new Date(2006,0,1)
parseDate(' 2006-1-1 ') return new Date(2006,0,1)
parseDate('2006-1-1 15:14:16') return new Date(2006,0,1,15,14,16)
parseDate(' 2006-1-1 15:14:16 ') return new Date(2006,0,1,15,14,16);
parseDate('2006-1-1 15:14:16.254') return new Date(2006,0,1,15,14,16,254)
parseDate(' 2006-1-1 15:14:16.254 ') return new Date(2006,0,1,15,14,16,254)
parseDate('不正确的格式') retrun null
*/
function parseDate(str){
if(typeof str == 'string'){
var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);
if(results && results.length>3)
return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));
results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);
if(results && results.length>6)
return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));
results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);
if(results && results.length>7)
return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]),parseInt(results[7]));
}
return null;
}
/*
将Date/String类型,解析为String类型.
传入String类型,则先解析为Date类型
不正确的Date,返回 ''
如果时间部分为0,则忽略,只返回日期部分.
*/
function formatDate(v){
if(typeof v == 'string') v = parseDate(v);
if(v instanceof Date){
var y = v.getFullYear();
var m = v.getMonth() + 1;
var d = v.getDate();
var h = v.getHours();
var i = v.getMinutes();
var s = v.getSeconds();
var ms = v.getMilliseconds();
if(ms>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s + '.' + ms;
if(h>0 || i>0 || s>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
return y + '-' + m + '-' + d;
}
return '';
}
分享到:
相关推荐
在处理非标准日期格式时,我们需要先解析字符串,然后利用`Date`对象的方法进行操作,最后再进行适当的格式化。在这个例子中,我们没有直接使用`replace()`,而是采取了更灵活和精确的方式来实现日期的转换。对于更...
// 格式化日期 return formatDateTime(date); } ``` 这个函数首先调用`parseJsonDate`函数将输入的JSON日期字符串转换为`Date`对象,然后通过`formatDateTime`函数将该对象格式化为我们所需的日期格式。 #### ...
### JavaScript中的Date Format(JS日期格式化)方法详解 #### 概述 在日常的Web开发工作中,我们经常需要处理日期和时间相关的数据。JavaScript 的 `Date` 对象提供了多种方法来获取和设置日期时间,但原生 API 并...
它提供了丰富的功能,包括日期解析、验证、格式化以及日期的数学运算等。由于其轻量级和强大的特性,moment.js在Web开发中被广泛采用,尤其在处理复杂的前端日期逻辑时。 1. **日期解析**: moment.js允许开发者...
例如,可以使用`format(new Date(), 'yyyy-MM-dd HH:mm:ss')`来格式化日期。 5. **luxon**: luxon是Intl.DateTimeFormat的现代化替代品,它提供了更强的类型安全性和更好的错误处理。使用`DateTime.now().to...
JavaScript提供了一个内置的`Date`对象,可以用来创建、操作和格式化日期。你可以通过`new Date()`来创建一个日期实例,或者通过传递年、月、日等参数来初始化特定日期。`Date`对象提供了丰富的API,如`getFullYear...
下面将详细介绍如何使用JavaScript实现字符串与日期的相互转换以及日期的格式化。 首先,我们来看如何将字符串转换为日期对象。在提供的代码中,有一个名为`stringToDate`的函数,它接受一个形如"yyyy-MM-dd"格式的...
AMF(Action Message Format)是Adobe公司开发的一种二进制数据序列化格式,常用于Flash与服务器之间的数据交换。...掌握这两种技术,以及相关的解析和格式化工具,将对提升你的开发能力大有裨益。
总结,JSON日期格式化涉及理解JSON的非标准化日期表示,使用JavaScript内置或外部工具进行日期解析和格式化。通过选择合适的API或库,我们可以根据需求灵活地处理JSON中的日期字符串,使其符合我们的展示或存储需求...
JavaScript的`Date`对象提供了丰富的API来创建、操作和格式化日期。例如: - `new Date()`:创建当前日期和时间的实例。 - `Date.now()`:获取自1970年1月1日以来的毫秒数。 - `date.getFullYear()`、`date.getMonth...
为了格式化日期,我们需要将这些方法获取到的值组合成我们想要的字符串格式。 在自定义日期格式化函数时,有两种常见的实现方式:扩展`Date.prototype`或创建独立的格式化函数。扩展`Date.prototype`虽然方便使用,...
在格式化日期时,往往需要对这些值进行调整,以符合特定的文化或商业规则,比如月份和日期的0填充、使用12小时制或24小时制等。 在实际应用中,格式化日期是Web开发中非常常见的需求。例如,在用户界面显示当前日期...
主要内容包括获取当前一周的所有日期、获取当月所有日期、获取当月的总天数、计算两个日期之间的差异、获取未来若干天的具体日期、获取星期名称以及格式化日期字符串的方法。此外,还介绍了一些需要注意的地方,如...
JavaScript是一种广泛应用于前端开发的编程语言,其中一个常见的任务是在Web应用中格式化日期和时间。为了帮助开发者高效完成这一任务,许多JavaScript库提供了日期时间格式化的函数。在本例中,我们将探讨一个...
### JS格式化日期知识点 #### 一、概述 在JavaScript中,处理日期是常见的需求之一。对于日期格式化的实现,通常需要考虑到不同浏览器之间的兼容性问题。本文将介绍一种简单的日期格式化方法,并通过示例代码展示...
`moment.js`提供了一种标准且强大的方式来解析、验证、操作和格式化日期。 例如,你可以用`moment('2022-12-31').isValid()`来验证日期是否有效,`moment().add(1, 'year')`将当前日期增加一年,`moment().subtract...
#### 二、格式化日期时间的函数设计 接下来,我们将重点介绍如何编写一个灵活且强大的日期时间格式化函数。该函数能够接受不同的格式化模式,并根据这些模式输出相应的日期时间字符串。 ```javascript // 扩展Date...
1. **无时分秒的日期格式化** ```javascript function jsonDateFormat(jsonDate) { try { var date = new Date(parseInt(jsonDate.replace("/Date(", "").replace(")/", ""), 10)); var month = date.getMonth...