<script language="javascript">
//参数dt:日期时间字符串
//参数msg:控件描述
//参数fm:日期时间格式
//参数type:语种类型,如空:公元,1:min
function checkDateByMask(dt,msg,fm,type){
//1.定义特殊的格式
var N=10;
var format=new Array(N);
format[0]="yyyy/MM/dd";
format[1]="yyyy-MM-dd";
format[2]="yy/MM/dd";
format[3]="yy-MM-dd";
format[4]="yyyy/MM/dd hh:mm:ss";
format[5]="yyyy-MM-dd hh:mm:ss";
format[6]="yy/MM/dd hh:mm:ss";
format[7]="yy-MM-dd hh:mm:ss";
format[8]="hh:mm:ss";
format[9]="hh:mm";
//2.定义错误提示
msg="\'"+msg+"\'";
var errPar=msg+"参数有误";
var errFormat=msg+"请按如下格式输入:\n"+fm;
var errYear=msg+"年份不对";
var errMonth=msg+"月份不对";
var errDay=msg+"日期不对";
var errHour=msg+"小时不对";
var errMinute=msg+"分钟不对";
var errSecond=msg+"秒钟不对";
//3.判断参数是否正确
var b=false;
for(var i=0;i<N;i++){
if(format[i].toLowerCase()==fm.toLowerCase()){
b=true;break;
}
}
if(!b){
return getErrorMsg(errPar);
}
//4.补足位数
if(dt.length!=fm.length){
var dt4=dt.replace(/[^0-9]/g,",")
var dtarr=dt4.split(",");
var dt3="";
var dtlen=0;
for(var i=0;i<dtarr.length;i++){
var len=dtarr[i].length;
dtlen=dtlen+len+1;
if(len<1)
dt3=dt3+"00"+dtarr[i];
else if(len<2)
dt3=dt3+"0"+dtarr[i];
else
dt3=dt3+dtarr[i];
dt3=dt3+dt.substr(dtlen-1,1);
}
dt=dt3;
}
//5.判断时间字符串与格式参数是否相符
if(dt.length!=fm.length){
return getErrorMsg(errFormat);
}
else{
var dt1=dt.replace(/[0-9]/g,"%d");
var dt2=fm.replace(/[ymdhs]/gi,"%d");
//alert(dt1+"\n"+dt2);
if(dt1!=dt2){
return getErrorMsg(errFormat);
}
}
//5.判断日期时间是否正确
try{
fm=fm.replace(/Y/g,"y").replace(/D/g,"d");
var iyyyy=fm.indexOf("yyyy");
var iyy=fm.indexOf("yy");
var imm=fm.indexOf("MM");
var idd=fm.indexOf("dd");
var ihh=fm.indexOf("hh");
var imi=fm.indexOf("mm");
var iss=fm.indexOf("ss");
var newdt=new Date();
var year="";
//Year
try{
var isyear=false;
if(iyyyy>-1){
year=dt.substr(iyyyy,4);
isyear=true;
}
else if(iyy>-1){
year=dt.substr(iyy,2);
isyear=true;
}
if(isyear){
if(type=="1"){//
year=parseInt(year)+1911;
}
newdt.setFullYear(year);
}
}
catch(e1){
return getErrorMsg(errYear+e1.toString());
}
//Month
try{
if(imm>-1){
if(dt.substr(imm,2)>"12"||dt.substr(imm,2)<"01"){
return getErrorMsg(errMonth);
}
newdt.setMonth(dt.substr(imm,2)-1);
}
}
catch(e1){
return getErrorMsg(errMonth+e1.toString());
}
//Day
try{
if(idd>-1){
if(dt.substr(idd,2)>"31"||dt.substr(idd,2)<"01"){
return getErrorMsg(errDay);
}
newdt.setDate(dt.substr(idd,2));
}
}
catch(e1){
return getErrorMsg(errDay);
}
//Hour
try{
if(ihh>-1){
if(dt.substr(ihh,2)>"23"){
return getErrorMsg(errHour);
}
newdt.setHours(dt.substr(ihh,2));
}
}
catch(e1){
return getErrorMsg(errHour);
}
//Minute
try{
if(imi>-1){
if(dt.substr(imi,2)>"59"){
return getErrorMsg(errMinute);
}
newdt.setMinutes(dt.substr(imi,2));
}
}
catch(e1){
return getErrorMsg(errMinute);
}
//Second
try{
if(iss>-1){
if(dt.substr(iss,2)>"59"){
return getErrorMsg(errSecond);
}
newdt.setSeconds(dt.substr(iss,2));
}
}
catch(e1){
return getErrorMsg(errSecond);
}
//Year
if(iyyyy>-1){
if(newdt.getFullYear()!=year){
return getErrorMsg(errYear);
}
}
else if(iyy>-1){
if(newdt.getFullYear()!=year){
return getErrorMsg(errYear);
}
}
//Month
if(imm>-1){
if(newdt.getMonth()!=(dt.substr(imm,2)-1)){
return getErrorMsg(errDay);
}
}
//Day
if(idd>-1){
if(newdt.getDate()!=dt.substr(idd,2)){
return getErrorMsg(errDay);
}
}
//Hour
if(ihh>-1){
if(newdt.getHours()!=dt.substr(ihh,2)){
return getErrorMsg(errMinute);
}
}
//Minute
if(imi>-1){
if(newdt.getMinutes()!=dt.substr(imi,2)){
return getErrorMsg(errSecond);
}
}
//Second
if(iss>-1){
if(newdt.getSeconds()!=dt.substr(iss,2)){
return getErrorMsg(errSecond);
}
}
alert(newdt);
}
catch(e){
return getErrorMsg(e.toString());
}
}
function getErrorMsg(msg){
alert(msg);
return false;
}
function isGyDate(obj,msg){
if(!checkDateByMask(obj.value,msg,"yyyy/MM/dd",""))
obj.focus();
}
function isMgDate(obj,msg){
if(!checkDateByMask(obj.value,msg,"yy/MM/dd","1"))
obj.focus();
}
function isGyDateTime(obj,msg){
if(!checkDateByMask(obj.value,msg,"yyyy/MM/dd hh:mm:ss",""))
obj.focus();
}
function isMgDateTime(obj,msg){
if(!checkDateByMask(obj.value,msg,"yy/MM/dd hh:mm:ss","1"))
obj.focus();
}
function isTime(obj,msg){
if(!checkDateByMask(obj.value,msg,"hh:mm:ss",""))
obj.focus();
}
function checkDate(){
return checkDateByMask(document.all.aa.value,"aa",document.all.formatStr.value,"");
}
</script>
<form name="form1">
<select name="formatStr">
<option value="yyyy/MM/dd">yyyy/MM/dd</option>
<option value="yyyy-MM-dd">yyyy-MM-dd</option>
<option value="yy/MM/dd">yy/MM/dd</option>
<option value="yy-MM-dd">yy-MM-dd</option>
<option value="yyyy/MM/dd hh:mm:ss">yyyy/MM/dd hh:mm:ss</option>
<option value="yyyy-MM-dd hh:mm:ss">yyyy-MM-dd hh:mm:ss</option>
<option value="yy/MM/dd hh:mm:ss">yy/MM/dd hh:mm:ss</option>
<option value="yy-MM-dd hh:mm:ss">yy-MM-dd hh:mm:ss</option>
<option value="hh:mm:ss">hh:mm:ss</option>
<option value="hh:mm">hh:mm</option>
</select>
<input type="text" name="aa" size="20"><br>
<input type="button" name="log1" value="Submit" onclick="checkDate()">
</form>
分享到:
相关推荐
这些库提供了丰富的选项和预定义的格式,可以方便地处理各种复杂的日期和时间格式。 总结来说,这个主题涵盖了JavaScript中日期和数字的格式化技术,涉及到自定义工具函数的编写,以及如何在实际项目中应用这些工具...
- 常见的日期时间格式化方法可以将Date对象转换为指定格式的字符串。 - `Date.prototype.isLeapYear` 方法判断是否为闰年。 - `Date.prototype.Format` 方法自定义格式化日期时间。 - 格式化中常用的是:YYYY...
总的来说,JavaScript在处理日期和金额格式化方面虽然有原生支持,但在实际应用中往往需要借助第三方库来提升效率和准确性。熟悉并掌握这些库的使用,对于提升JavaScript开发能力具有重要意义。
JavaScript的内置`Date`对象提供了丰富的功能来处理日期和时间,但默认的字符串表示可能并不符合我们的需求,因此需要自定义格式化。下面我们将深入探讨如何在JavaScript中将日期数据转换为所需的格式。 首先,让...
这篇博客文章“js 时间格式化”可能探讨了如何使用JavaScript来优雅地展示和处理日期与时间。 在JavaScript中,`Date`对象是处理日期和时间的基础。创建一个`Date`对象可以获取当前时间,例如: ```javascript var ...
JavaScript是Web开发中不可或缺的一部分,尤其在处理日期和时间的操作上。日期格式化是一个常见的需求,无论是为了展示用户友好的日期格式,还是在处理服务器数据交换时。在JavaScript中,我们可以使用内置的`Date`...
http://www.cnblogs.com/GuominQiu 代码如下: //————————————————————————— //判断日期格式是否正确 //返回值是错误信息, 无错误信息即表示合法日期字符串 function isDateString(strDate...
在这个例子中,当用户点击按钮时,`formatDate`函数会被调用,将当前日期时间格式化后显示在页面的`<p>`元素中。 `doc.txt`文件可能包含了关于如何使用这些代码的说明,包括如何运行示例,以及`Control.js`中可能...
对于从C#返回的日期字段,当进行JSON序列化后,在前台JS里显示的并不是真正的日期,这让我们感觉很不爽,我们不可能为了这东西,把所有日期字段都变成string吧,所以,找了一个JS的扩展方法,来实现这个功能 ...
### 使用JavaScript验证日期格式 在Web开发中,经常需要对用户输入的数据进行验证,确保其符合预期的格式或规则。本文将详细介绍如何使用JavaScript来验证日期格式的正确性。我们将通过一个具体的示例来探讨这一...
此外,除了手动格式化,还可以使用一些库,如Moment.js或date-fns,它们提供了更丰富的日期时间处理功能和易用的API,可以轻松实现各种复杂的日期时间格式化需求。不过,对于基础的格式化需求,了解和掌握JavaScript...
### JavaScript中的Trim函数和日期时间格式化函数 在JavaScript中,字符串处理和日期操作是非常常见的需求,尤其是在数据清洗、格式转换等场景下。本文将详细介绍如何利用自定义方法实现字符串的Trim功能以及日期...
总的来说,`dateformat.js` 是一个强大且实用的日期处理工具,它提供了丰富的日期格式化选项,简单易用的API,以及良好的国际化支持。无论是在小规模的个人项目还是大型的企业应用中,都能找到它的一席之地。
JavaScript的`Intl.DateTimeFormat` API可以提供更高级的日期和时间格式化功能。例如,如果你想按照"MM/dd/yyyy"格式输出日期,可以这样做: ```javascript let date = new Date(); let formatter = new Intl....
通过以上这些函数,开发者可以轻松地处理日期格式、创建月历视图以及实现倒计时功能,而不需要依赖额外的库。这些基础的日期处理方法不仅可以提高代码的效率,还能减少项目的体积,适用于各种轻量级的前端项目。在...
JavaScript日期时间控件是网页开发中常用的一种组件,主要用于用户在网页上选择或输入日期和时间。在JavaScript中,处理日期和时间的核心对象是`Date`。本篇将深入探讨JavaScript日期时间控件的实现原理、使用方法...
这在处理后端序列化的JSON数据时非常常见,尤其是在需要将日期时间展示给用户或者进行进一步处理的情况下。我们将探讨以下关键知识点: 1. **理解JSON日期格式**:解释从数据库获取的日期通常采用的格式。 2. **...
在Web应用中,日期时间格式化的灵活性对于提高用户体验至关重要,因此掌握这一技能非常实用。 #### 描述:对前端日期进行格式化 这段描述提供了关于日期格式化功能的具体用法示例,展示了如何使用自定义格式字符串...
以上三个函数提供了JavaScript中处理日期的基本能力:比较日期大小、验证日期格式以及判断两个日期是否在同一个月份。这些函数可以很好地帮助开发者在Web应用中进行日期相关的逻辑处理,从而提高应用程序的功能性和...
5. **ISO 8601兼容**: Luxon遵循ISO 8601标准,确保与国际日期时间格式的兼容性。 6. **模块化设计**:Luxon采用模块化设计,可以根据项目需求选择导入特定功能,减少代码体积。 7. **与其他库的兼容性**:尽管...