JS的日历控件的日期格式,输出已经改成YYYY/MM/DD了,但是传入的时候不能识别,求懂的朋友指点

太长了上传不了,传了一部分,输入输出都要YYYY/MM/DD格式DayClick:function(mm,dd)//点击显示框选取日期,主输入函数************... 太长了上传不了,传了一部分,输入输出都要YYYY/MM/DD格式

DayClick:function(mm,dd) //点击显示框选取日期,主输入函数*************
{
var yy=this.L_TheYear;
//判断月份,并进行对应的处理
if(mm<1){yy--;mm=12+mm;}
else if(mm>12){yy++;mm=mm-12;}

if (this.ClickObject)
{if (!dd) {return;}

this.InputObject.value= yy + "/" + mm + "/" + dd ; //注:在这裏你可以输出改成你想要的格式
this.CloseLayer();
}
else {this.CloseLayer(); alert("您所要输出的控制项物件并不存在!");}
},
SetDate:function(){
if (arguments.length < 1){alert("对不起!传入参数太少!");return;}
else if (arguments.length > 2){alert("对不起!传入参数太多!");return;}
this.InputObject=(arguments.length==1) ? arguments[0] : arguments[1];
this.ClickObject=arguments[0];
var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/;
var r = this.InputObject.value.match(reg);
if(r!=null){
r[2]=r[2]-1;
var d= new Date(r[1], r[2],r[3]);
if(d.getFullYear()==r[1] && d.getMonth()==r[2] && d.getDate()==r[3]){
this.InputDate=d; //保存外部传入的日期
}
else this.InputDate="";
this.L_TheYear=r[1];
this.L_TheMonth=r[2]+1;
}
else{
this.L_TheYear=new Date().getFullYear();
this.L_TheMonth=new Date().getMonth() + 1
}
this.CreateHTML();
var top=this.GetY();
var left=this.GetX();
var DateLayer=document.getElementById("L_DateLayer");
DateLayer.style.top=top+this.ClickObject.clientHeight+5+"px";
DateLayer.style.left=left+"px";
DateLayer.style.display="block";
if(document.all){
this.GetDateLayer().document.getElementById("L_calendar").style.width="160px";
this.GetDateLayer().document.getElementById("L_calendar").style.height="180px"
}
else{
this.GetDateLayer().document.getElementById("L_calendar").style.width="154px";
this.GetDateLayer().document.getElementById("L_calendar").style.height="180px"
DateLayer.style.width="158px";
DateLayer.style.height="250px";
}
//alert(DateLayer.style.display)
this.SetDay(this.L_TheYear,this.L_TheMonth);
},
用YYYY-MM-DD格式能得到回传值

使用YYYY/MM/DD得不到回传值,只能使用默认日期
展开
 我来答
全国流窜
2017-06-07 · TA获得超过403个赞
知道小有建树答主
回答量:417
采纳率:50%
帮助的人:170万
展开全部
传入时用标准的,YYYY-MM-DD,如果用/分隔符,需要符合美式或英式写法:最后一项是年。MM/DD/YYYY, 或DD/MM/YYYY

YYYY/MM/DD, 常规来说,没这种写法。如果是年月日,通常采用"-"做分隔符。
更多追问追答
追问
我见过有的插件可以。我这个插件用了很久,引用页面太多所以不想换了。
追答

那是因为内部有转换不标准格式。对于js来说,当传入时,最终都需要以:

new Date("month dd,yyyy hh:mm:ss");
new Date("month dd,yyyy");
new Date(yyyy,mth,dd,hh,mm,ss);
new Date(yyyy,mth,dd);
new Date(ms);

这些形式传入。注意你自己的代码:

var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/; //即为:年-月-日
var r = this.InputObject.value.match(reg); 
if(r!=null){
r[2]=r[2]-1; 
var d= new Date(r[1], r[2],r[3]);  //分解传入为: new Date(yyyy,mth,dd); 形式。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式