2017-03-21 83 views
0

我需要在所有9個月的「下一天」文本框中的月份上添加前導零,並在10,11,12處將其關閉。我不知道如何實現這一點。用javascript添加前導零?

幫助!

$(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>

+0

@Cecilia好抓!我一直在尋找蠢事,但不知道「Zerofilled」這個詞來搜索。 – krillgar

回答

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>

+0

這可以工作,但它也不會翻到下一年。 「下一個日期:」文本框是從「輸入日期:」日期開始的90天。如果您設置日期以說明10/31/2017它不會將年份更改爲2018. – agdm619

+0

反正保留從原始代碼翻轉一年? – agdm619

+0

嗨agdm619,我糾正了代碼。請立即檢查該代碼段,並告訴我們是否有任何問題。 – Mamun

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

我選擇回答這個問題,而不是因爲幾個原因將其標記爲僞裝。首先,用戶所要求的格式完全不同於我的鏈接問題所尋找的格式。其次,問題的標題會導致那些試圖解決非日期相關問題的人也會來到這裏。 – krillgar

+0

只是一個說明,傻瓜是爲其他搜索條件搜索的人的標誌職位。如果你把一個問題看作是一個愚蠢的問題,它仍然會指出到達這裏的人試圖在正確的方向上解決一個與日期無關的問題。 [標記模糊有助於未來用戶找到合適的資源。](https://stackoverflow.blog/2010/11/16/dr-strangedupe-or-how-i-learned-to-stop-worrying-and-love-duplication /) – Cecilia

+0

但是,說,你的鏈接不是最好的愚蠢無論如何。 :) – Cecilia

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()); 
    }); 

}); 

我希望這是你想要的:)

問候,