半成品,凑合用一下。
function parseDate(str,fm){
var start = 0,ch1 = null,ch2 = null;
var chReg = /^[yMdhms]$/,
nReg = /^\d$/;
str = str.replace(/^\s+/g,'').replace(/\s+$/,'');
fm = fm.replace(/^\s+/g,'').replace(/\s+$/,'');
if(str.length !== fm.length){
return null;
}
var dtArr = [];
function convert(start,end){
var tmp = parseInt(str.substring(start,end),10);
switch(ch1){
case 'y' : dtArr[0] = tmp;break;
case 'M' : dtArr[1] = tmp - 1;break;
case 'd' : dtArr[2] = tmp;break;
case 'h' : dtArr[3] = tmp;break;
case 'm' : dtArr[4] = tmp;break;
case 's' : dtArr[5] = tmp;break;
default: throw new Error("Invalid Date.");
}
}
ch1 = fm.charAt(i);
var flag = true;//有效字符开始标志
try{
for(var i = 0,len = fm.length; i < len; i++){
ch2 = fm.charAt(i);
if(chReg.test(ch2) && nReg.test(str.charAt(i))){//有效日期字符
if(ch2 === ch1){
continue;
}else{//新的时间
ch1 = ch2;
if(flag){
convert(start,i);
}
flag = true;
start = i;
}
}else if(ch2 === str.charAt(i)){
if(flag){
convert(start,i);
}else{
start = i;
}
flag = false;
}else{
throw new Error('format no match.');
}
}
convert(start,i);
}catch(e){
console.error(e);
return null;
}
return new Date(dtArr[0],dtArr[1],dtArr[2],dtArr[3]||0,dtArr[4]||0,dtArr[5]||0,0);
}
usage:
console.log(parseDate('2014-11-08','yyyy-MM-dd'));
console.log(parseDate('2014-02-08 22:22:12','yyyy-MM-dd hh:mm:ss'));
console.log(parseDate('31/01/2011','dd/MM/yyyy'));
分享到:
相关推荐
计算机后端-PHP视频教程. php与mysql加强- 03. php加强32-日期解析函数.wmv
- 然后,它将内部日期格式的 ZDATE 解析为年(lv_year)、月(lv_month)和日(lv_day)。 - 接下来,通过 SELECT 语句从 USR01 表中获取用户的日期格式(datfm)。 - 如果查询成功(SY-SUBRC = 0),则根据找到的...
GPS解析函数是用于处理GPS接收器发送的数据报文的程序,这些报文通常遵循NMEA(北美电子导航设备制造商协会)标准格式。NMEA报文包含多种类型,如GPGGA、GPGSA、GPGSV和GPRMC等,每种类型提供了不同的GPS信息。 在...
本文将深入解析Sybase的四个主要日期函数及其应用。 1. **getdate()** 函数: - `getdate()` 用于获取当前系统时间,返回的是一个datetime类型的数据,可以进一步通过转换函数来获取所需的时间格式。例如,你可以...
下面,我们将深入解析并解释这些函数的意义和应用场景。 ### 1. 获取年份的两位数字表示 函数原型:`intls_year(string)` 实现方式:通过模运算计算当前年份与1900之间的余数,并根据结果选取字符串“ţF”中的...
这些类提供了丰富的函数和方法,用于日期的格式化、解析、获取当前时间以及日期的转换等操作。 #### `java.util.Date` `java.util.Date`是Java中表示具体时间点的基本类。它可以被用来表示当前时间,或任意一个...
6. **日期解析**:C++没有内置的日期解析函数,但你可以使用第三方库如`boost.date_time`或自定义函数来解析用户输入的日期。例如,将"2022-02-14"这样的日期字符串转换为`std::tm`。 7. **格式化输出**:输出日期差...
根据给定文件的信息,我们...以上就是对给定文件中的各个日期函数的详细解析。这些函数覆盖了日期处理中的常见需求,如判断闰年、获取星期几、增加月份等。通过这些函数的灵活应用,可以有效地解决日期相关的各种问题。
### SQL日期函数大全:深入解析与实用技巧 在SQL中,日期函数是处理时间数据的强大工具,它们能够帮助我们执行日期的加减、比较、格式化等操作,从而在数据分析和报告生成中发挥关键作用。本文将围绕标题“SQL日期...
涉及Oracle常用日期函数的用法、解析以及相关实例
- **源码检查**:查看datetimepicker插件的源码,确认日期解析函数是否能正确处理各种输入情况,以及是否对中文字符进行了适当的处理。 - **调试工具**:使用浏览器的开发者工具来检查网络请求、DOM元素和JavaScript...
### VB日期函数详解 在Visual Basic (VB)编程语言中,日期函数是非常重要的工具,用于处理日期和时间数据。本文将详细介绍几个常见的VB日期函数及其用法,帮助开发者更好地理解和运用这些函数。 #### DATE 函数 **...
以下是对几个常用日期函数的详细解析: ### 1. `TO_DAYS(date)` `TO_DAYS()`函数将一个日期转换为从“0000-00-00”到指定日期的天数。这在比较两个日期或计算两个日期之间的天数差时非常有用。 例如: ```sql ...
标题中的“GPS_Analyse.zip_GPS解析函数_gps analyse”表明这是一个关于GPS数据解析的软件包,其中包含了实现GPS数据解析功能的源代码。这个压缩包里有两个主要的文件:GPS_Analyse.c 和 GPS_Analyse.h。这些文件...
文章将分为几个部分:背景介绍、关键函数解析、日期合法性检查功能解析以及完整的程序运行逻辑。 ### 背景介绍 在软件测试课程中,决策表是一种常用的方法来确定测试用例的组合,它可以帮助测试人员更系统地覆盖...
标题中的"delphi日期转换函数"主要涉及到如何将日期字符串按照特定格式进行解析和格式化。 描述中提到的"国际日期格式转换,例如02AUG12=>20140802"是一个具体的例子。这种转换通常需要开发者自定义函数,因为标准...
以下将详细解析Excel中涉及的这些关键函数。 1. **LEN()和LENB()** - **LEN()** 函数用于计算文本字符串的字符数。例如,如果你有一个单元格包含文本"Hello",LEN("Hello")将返回5。 - **LENB()** 与LEN()类似,...
在本篇文章中,我们将深入探讨一些常用的日期处理函数,并通过实例来解析它们的用法。 1. **`NOW()`函数**: `NOW()`函数用于获取当前系统日期和时间。在创建`t_student`表时,`birthday`字段插入了当前日期,即`...
上个月的最后一天;下个月的第一天;获取月份的天数 ;获取月份中的第一天是所在星期的第几天;解析字符串成日期格式对象;格式化日期对象为字符串;计算两个日期相差的天数;