颠倒自动日期格式的顺序

Reverse the order of an auto date format

本文关键字:格式 顺序 日期      更新时间:2023-09-26

我正在使用的格式函数在某些点插入'-'以自动格式化日期字段。现在它以"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;
 }

我认为您会从Date类中受益。

var date1 = new Date('02-04-2016');
    //Thu Feb 04 2016 00:00:00 GMT-0500 (Eastern Standard Time)
var date2 = date1.getFullYear() + '-'
       + ((date1.getMonth() + 1) > 9? date1.getMonth() + 1: '0' + (date1.getMonth() + 1)) + '-'
       + (date1.getDate() > 9? date1.getDate(): '0' + date1.getDate());
    //"2016-02-04"

这里是 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;}