反转自动日期格式的顺序

时间:2016-02-04 17:35:35

标签: javascript

我正在使用的功能格式插入' - '在某些点自动格式化日期字段。现在它以“mm-dd-yyyy'”的格式打印,我试图让它打印出来&yyy-mm-dd'。

  <input type=textbox id=date onkeyup="dtval(this,event)" />

js

  function dtval(d,e) {
  var pK = e ? e.which : window.event.keyCode;
    if (pK == 8) {d.value = substr(0,d.value.length-1); return;}
  var dt = d.value;
  var da = dt.split('-');
    for (var a = 0; a < da.length; a++) {if (da[a] != +da[a]) da[a] = da[a].substr(0,da[a].length-1);}
       if (da[0] > 31) {da[1] = da[0].substr(da[0].length-1,1);da[0] = '0'+da[0].substr(0,da[0].length-1);}
       if (da[1] > 12) {da[2] = da[1].substr(da[1].length-1,1);da[1] = '0'+da[1].substr(0,da[1].length-1);}
       if (da[2] > 9999) da[1] = da[2].substr(0,da[2].length-1);
    dt = da.join('-');
      if (dt.length == 2 || dt.length == 5) dt += '-';
    d.value = dt;
 }

2 个答案:

答案 0 :(得分:0)

我认为您可以从Date课程中受益。

MyInterface3

答案 1 :(得分:-1)

这是YYYY-MM-DD:

function dtval(d,e) {
  var pK = e ? e.which : window.event.keyCode;
  if (pK == 8) {d.value = d.value.substr(0,d.value.length-1); return;}
  var dt = d.value;
  var da = dt.split('-');
  for (var a = 0; a < da.length; a++) {
    if (da[a] != +da[a]) da[a] = da[a].substr(0,da[a].length-1);
  }
  if (da[0] > 9999) {da[1] = da[0].substr(da[0].length-1,1);da[0] = '0'+da[0].substr(0,da[0].length-1);}
  if (da[1] > 12) {da[2] = da[1].substr(da[1].length-1,1);da[1] = '0'+da[1].substr(0,da[1].length-1);}
  if (da[2] > 31) da[1] = da[2].substr(0,da[2].length-1);
  dt = da.join('-');
  if (dt.length == 4 || dt.length == 7) dt += '-';
  d.value = dt;
}
<input type=textbox id=date onkeyup="dtval(this,event)" />

顺便说一下,你有这条线:

if (pK == 8) {d.value = substr(0,d.value.length-1); return;}

没有substr全局函数,它是String的函数:

if (pK == 8) {d.value = d.value.substr(0,d.value.length-1); return;}