使用javascript添加前导零? [重复]

问题描述 投票:0回答:3

这个问题在这里已有答案:

我需要在所有9个月的“下一天”文本框中为月份添加前导零,并在10,11,12处将其关闭。我不知道如何实现这一目标。

救命!

$(document).ready(function(){

 var currentDate = new Date()
    var day = currentDate.getDate()
    if(day <= 9)
    day = '0'+day;
    var month = currentDate.getMonth() + 1
    if(month <= 9)
    month = '0'+month;
    var year = currentDate.getFullYear()
    document.getElementById("element_183").value =("" + month + "/" + day + "/" + year + "")

    function DateFromString(str){ 
        str = str.split(/\D+/);
        str = new Date(str[2],str[0]-1,(parseInt(str[1])+90));
        return MMDDYYYY(str);
    }
    
    function MMDDYYYY(str) {
        var ndateArr = str.toString().split(' ');
        var Months = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec';
        return (parseInt(Months.indexOf(ndateArr[+1])/4)+1)+'/'+ndateArr[2]+'/'+ndateArr[3];
    }

    function Add90Days() {
        var date = $('#element_183').val();
        var ndate = DateFromString(date);
        return ndate;
    }

    $('#element_183').ready(function(){
        $('#element_184').val(Add90Days());
    });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
Enter date:<input type="text" id="element_183" readonly>
Next date:<input type="text" id="element_184" readonly>
javascript jquery
3个回答
0
投票

请尝试以下代码:

var currentDate = new Date();
//currentDate.setMonth(currentDate.getMonth() + 7);
var day = currentDate.getDate()
if(day <= 9)
day = '0'+day;
var month = currentDate.getMonth() + 1
if(month <= 9)
month = '0'+month;
var year = currentDate.getFullYear()
document.getElementById("element_183").value =("" + month + "/" + day + "/" + year + "")

function DateFromString(str){ 
  str = str.split(/\D+/);
  str = new Date(str[2],str[0]-1,(parseInt(str[1])+90));
  
  return str;
}

function MMDDYYYY(str) {
  var ndateArr = str.toString().split(' ');
  var Months = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec';
  var str = new Date(str);
  
  var day = str.getDate();
  if(day <= 9)
  day = '0'+day;
  var month = str.getMonth() + 1
  if(month <= 9)
  month = '0'+month;
  var year = str.getFullYear()
  return ("" + month + "/" + day + "/" + year + "");
}

function Add90Days() {
  var date = $('#element_183').val();
  var ndate = MMDDYYYY(DateFromString(date));
  return ndate;
}

$('#element_183').ready(function(){
  $('#element_184').val(Add90Days());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Enter date:<input type="text" id="element_183" readonly>
Next date:<input type="text" id="element_184" readonly>

1
投票

我将使用this answer中使用的技术,因此对该用户赞不绝口。

var currentDate = new Date('01/15/2017');
var currentDay = ('0' + currentDate.getDate()).slice(-2);
var currentMonth = ('0' + (currentDate.getMonth() + 1)).slice(-2);
// This is not just relevant to dates!
var number = 3;
var paddedNumber = ('0' + number).slice(-2);

// currentDay = '15'
// currentMonth = '01'
// number = '03'

.slice(-2)所做的是执行“子串”,但从字符串的末尾开始,切断前面。这样,如果您已经有2位数的日期或月份,它将变成3个字符,然后第一个将被删除。


0
投票

我一直在测试这个问题,我得到这样的工作:

$(document).ready(function(){

 var currentDate = new Date()
    var day = currentDate.getDate()
    if(day <= 9)
    var stringDay = '0'+day.toString();
    var month = currentDate.getMonth() + 1
    if(month <= 9)
    var stringMonth = '0'+month.toString();
    var year = currentDate.getFullYear()
    document.getElementById("element_183").value =("" + stringMonth + "/" + stringDay + "/" + year + "")

    function DateFromString(str){ 
        str = str.split(/\D+/);
        str = new Date(str[2],str[0]-1,(parseInt(str[1])+90));
        return MMDDYYYY(str);
    }

    function MMDDYYYY(str) {
        var ndateArr = str.toString().split(' ');
        var Months = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec';
        return (parseInt(Months.indexOf(ndateArr[+1])/4)+1)+'/'+ndateArr[2]+'/'+ndateArr[3];
    }

    function Add90Days() {
        var date = $('#element_183').val();
        var ndate = DateFromString(date);
        return ndate;
    }

    $('#element_183').ready(function(){
        $('#element_184').val(Add90Days());
    });

});
© www.soinside.com 2019 - 2024. All rights reserved.