recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Je souhaite formater automatiquement la date lors de la saisie de chiffres. La date formatée est : AAAA-MM-JJ.

Je souhaite écrire un composant qui formate automatiquement la date lors de la saisie de nombres, tel que : 201705. Le format de date final est : 2017-05. Entrez à nouveau 06 pour formater automatiquement le 06/05/2017

.
伊谢尔伦伊谢尔伦2704 Il y a quelques jours1155

répondre à tous(6)je répondrai

  • 習慣沉默

    習慣沉默2017-07-05 10:52:15

    Edit : Conversion simple du cas proposé :

    const date str = '20170523'
    
    const result = new Date()
    result.setFullYear(parseInt(str.substr(0, 4)))
    result.setMonth(parseInt(str.substr(4, 2)) - 1)
    result.setDate(parseInt(str.substr(6, 2)))
    
    // 函数定义见下
    getDateFromTimestamp(result.getTime())

    Une mise en œuvre simple est la suivante :

    // 1495517932472 毫秒级时间戳
    const date = new Date().getTime()
    
    function formatMonth (num) {
      return [
        '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'
      ][num]
    }
    
    function getDateFromTimestamp (ts) {
      const date =  new Date(ts)
      const YYYY = date.getFullYear()
      const MM = formatMonth(date.getMonth())
      const DD = date.getDate()
      return `${YYYY}-${MM}-${DD}`
    }
    
    // 2017-05-23
    console.log(getDateFromTimestamp(date))

    répondre
    0
  • 世界只因有你

    世界只因有你2017-07-05 10:52:15

    Vous avez peut-être besoin de momentjs

    répondre
    0
  • 某草草

    某草草2017-07-05 10:52:15

    funtion format_num_to_date(num) {
        var str = String(num);
        if (str.length === 8) {
            var date = str.substr(0,4) + '-' + str.substr(4,2) + '-' + str.substr(6);
            return date;
        }
    }
    
    format_num_to_date(20170523);

    répondre
    0
  • 怪我咯

    怪我咯2017-07-05 10:52:15

    //时间格式化
    // var time1 = new Date().Format(“yyyy-MM-dd”);
    // var time2 = new Date().Format(“yyyy-MM-dd HH:mm:ss”);
    Date.prototype.Format = function (fmt) { //author: meizz 
      var o = {
          "M+": this.getMonth() + 1, //月份 
          "d+": this.getDate(), //日 
          "h+": this.getHours(), //小时 
          "m+": this.getMinutes(), //分 
          "s+": this.getSeconds(), //秒 
          "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
          "S": this.getMilliseconds() //毫秒 
      };
      if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp., (this.getFullYear() + "").substr(4 - RegExp..length));
      for (var k in o)
      if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp., (RegExp..length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
      return fmt;
    }

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-07-05 10:52:15

    let yyyymmdd = (date, sep = '-') => {
        return [
            date.getFullYear(),
            date.getMonth()+1,
            date.getDate()
        ].map(d => d.toString())
        .map(d => ('00' + d).slice(d.length >= 4 ? -4 : -2)).join(sep); 
    }

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-07-05 10:52:15

    N'est-ce pas

    natif<input type="date" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}"> mauvais ?

    répondre
    0
  • Annulerrépondre