前几天写的用javascript将英文日期如(10MAR11)转成数字日期2011-03-10
网上找了好久没找到,自己写了个,勉强够用,但肯定不是最好的,如果有高人能给个更好的解决方案不胜感激。
本方法支持两种年的转换,两位年转成4位年。
如出生日期则取0到100岁之间,证件有效期则取2000年以后的年(使用forwardDate=true)。
/**
* 英文日期字符串转化为数字日期
* dateStr:原英文日期 05MAR86
* forwardDate:年是否只取当前年以后的数(true|false)
* Ranyut 2011-5-30
**/
function pasreEnDate(dateStr, forwardDate) {
try {
if (dateStr && dateStr.trim().length != 7) {
return;
}
var dd = dateStr.substring(0, 2);
var mm = dateStr.substring(2, 5);
var yy = dateStr.substring(5, 7);
mm = mm.toUpperCase();
var em = new Array("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC");
switch (mm) {
case em[0]:
mm = 1;
break;
case em[1]:
mm = 2;
break;
case em[2]:
mm = 3;
break;
case em[3]:
mm = 4;
break;
case em[4]:
mm = 5;
break;
case em[5]:
mm = 6;
break;
case em[6]:
mm = 7;
break;
case em[7]:
mm = 8;
break;
case em[8]:
mm = 9;
break;
case em[9]:
mm = 10;
break;
case em[10]:
mm = 11;
break;
case em[11]:
mm = 12;
break;
}
var now = new Date();
var year = now.getFullYear();
if (yy.length == 2) {
//指定为10进制否则出问题
yy = parseInt(yy,10);
if (forwardDate) {
//只是当前日期以后的日期
yy = 2000 + yy;
} else {
//如出生日期
var miny = year - (2000 + yy);
var maxy = year - (1900 + yy);
if (miny > 0 || maxy < 100) {
yy = 1900 + yy;
} else {
yy = 2000 + yy;
}
}
}
var nd = mm + "/" + dd + "/" + yy;
var date2 = new Date(nd);
return myGetDateText(date2);
}
catch (e) {
return "";
}
}
//将日期转化为2010-04-09格式的字符串
function myGetDateText(date1) {
var dateStr = "";
if (date1) {
dateStr = date1.getFullYear();
var month = date1.getMonth() + 1;
var day = date1.getDate();
if (month < 10) {
dateStr += "-0" + month;
} else {
dateStr += "-" + month;
}
if (day < 10) {
dateStr += "-0" + day;
} else {
dateStr += "-" + day;
}
}
return dateStr;
}
/*******转化日期结束 ************/
注意parseInt()方法,parseInt("08"),parseInt("09")为转成0而不是8,9。
故用parseInt(string, radix);
------------------------------------
对于 parseInt("07");之前 /parseInt("10") 到以后 都能得到正确的结果,但如果是parseInt("08") 或parseInt("09")则返回0;
首先看parseInt语法:parseInt(string, radix);
如果后面参数没写就以第一个的开头判断
其中string为要转换的字符串,radix为二进制,八进制,十六进制或十进制。
在默认不指定radix时,当以0x开关时,为十六进制;
如果以0开头且第二个字符不为 "x",则认为是八进制,(因为八进制不能有8,9所以报错返回0)。
如果以1开头就以十进制,所以10以后就又是对的了
所以,在我们用时还是明确指定进位制,以防出错。
如我们平时都用十进制位,我们就用 parseInt("08", 10);
分享到:
相关推荐
28、原生JavaScriptIP转成整型 29、原生JavaScript整型解析为IP地址 30、原生JavaScript实现checkbox全选与全不选 31、原生JavaScript判断是否移动设备 32、原生JavaScript判断是否移动设备访问 33、原生JavaScript...
有时在项目中需要选择生日之类的日期,而默认点开始日期都是当前日期,导致年份选择非常麻烦,你可以通过起始日期功能加上配置alwaysUseStartDate属性轻松解决此类问题 自定义格式(注意大小写) yMdHmswW分别代表年月...
第1章 JavaScript简介 1 1.1 JavaScript是什么 1 1.2 JavaScript不是什么 2 1.3 JavaScript的用处 3 1.4 JavaScript及其在Web页面中的位置 3 1.5 Ajax是什么 5 1.6 JavaScript是什么样子的 6 1.7 ...
JavaScript:定义行为和动作 (基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是...
开发中有时候需要从服务器端返回json格式的数据,在后台代码中如果有DateTime类型的数据使用系统自带的工具类序列化后将得到一个很长的数字表示日期数据,如下所示: //设置服务器响应的结果为纯文本格式 context...
Javascript Basic 1、Javascript 概述(了解) Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 - NodeJS 2、嵌入在浏览器中的JS...
一个用于 Backbone 集合的简单排序插件解决方案,具有可配置的排序方向和类型,包括数字、字母、日期和布尔值。 该插件使用支持各种排序顺序类型和方向的新方法定义了“比较器”。 排序类型包括: 数字 按字母...
解决方案 笔记: LeetCode 解决方案是用 Python3 / C / JavaScript 编写的。 一个问题可能有几种解决方法。 最佳实践和其他方法都已实施。 (某些时间快得多的复杂解决方案可能无法实现。例如,问题 5。) 有一些用 ...
Javascript表单验证控件(Validator v1.05).rar --------------------------------- 内含以下两个文件: Validator.chm(详细的使用帮助文档) validator.js(源代码,当然没有prototype.js强大,但最...
大学生们,面对Web前端课程的大作业压力,你是否在寻求一个既高效又专业的解决方案?这份包含多套网站源码的资源包,将为你的大作业带来前所未有的轻松与信心!在这个数字化时代,一个精心制作的网站能够充分展示你...
• sample05.htm 将日期对象的日期部分和时间部分转换成字符串 • sample06.htm 将日期部分转换为字符串 • sample07.htm 将时间部分转换为字符串 • sample08.htm 将时间部分转换...
2009-03-10 17:52 185677 39758 常见的专业问题解决办法\jsp数字验证码代码详解 - 我爱跑IT---技术专区.mht 2009-03-10 17:22 192548 40484 常见的专业问题解决办法\JSP验证码代码的实现_娟行天下.mht 2009-02-24 08...
检查卡详细信息问题设计一个网页来获取卡片的详细信息。 包括基本验证,如验证卡号和有效期。 还包括卡片和 cvv 上的姓名...解决方案验证卡号和 CVV 将卡的详细信息存储在数据库中, 基本验证,如验证卡号和有效期使
表单的验证一直是网页设计者头痛的问题,表单验证类 Validator就是为解决这个问题而写的,旨在使设计者从纷繁复杂的表单验证中解放出来,把精力集中于网页的设计和功能上的改进上。 <br> Validator是基于...
表单的验证一直是网页设计者头痛的问题,表单验证类 Validator就是为解决这个问题而写的,旨在使设计者从纷繁复杂的表单验证中解放出来,把精力集中于网页的设计和功能上的改进上。 Validator是基于JavaScript技术...
那么用多少个空表格代替呢,这里就得用到getDay()方法了,该方法返回数组[0-6]中的一个数字,0代表星期天,1代表星期一,2代表星期二,以此类推。所以如果一个月的1号是星期五的话,那么刚好左边需要5个空表格代替。...
大学生们,面对Web前端课程的大作业压力,你是否在寻求一个既高效又专业的解决方案?这份包含80套网站源码的资源包,将为你的大作业带来前所未有的轻松与信心!在这个数字化时代,一个精心制作的网站能够充分展示你...
**Python企业IT资产管理系统:高效、智能与可定制的解决方案** 随着信息技术的飞速发展,企业IT资产管理的重要性日益凸显。为了满足这一需求,我们开发了基于Python语言的IT资产管理系统。该系统集成了先进的资产...
表单的验证一直是网页设计者头痛的问题,表单验证类 Validator就是为解决这个问题而写的,旨在使设计者从纷繁复杂的表单验证中解放出来,把精力集中于网页的设计和功能上的改进上。 Validator是基于JavaScript技术...