2017-03-21 15 views
0

Ich muss eine führende Null auf den Monat am "Next day" Textfeld für alle 9 Monate hinzufügen und auf 10,11,12 lassen. Ich habe keine Ahnung, wie ich das erreichen kann.Führende Null mit Javascript hinzufügen?

Hilfe!

$(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 Guter Fang! Ich suchte nach Duplikaten, kannte aber den Begriff "ZeroFilled" nicht. – krillgar

Antwort

0

den folgenden Code Versuchen:

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

Dies funktioniert, obwohl es nicht auf das nächste Jahr wie es auch verwendet wird. Das Textfeld "Next date:" ist 90 Tage ab dem Datum in "Enter date:" Wenn Sie das Datum auf den 31.10.2017 setzen, ändert sich das Jahr nicht in 2018. – agdm619

+0

trotzdem die Fähigkeit zu erhalten das Jahr vom ursprünglichen Code überrollen? – agdm619

+0

Hallo agdm619, ich habe den Code korrigiert. Bitte überprüfen Sie das Snippet und lassen Sie uns wissen, wenn etwas schief geht. – Mamun

1

Ich werde die Technik in this answer, an den Benutzer so ein dickes Lob verwendet verwenden.

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' 

Was .slice(-2) tut, ist eine „Teilkette“ ausführen, sondern vom Ende der Zeichenfolge beginnen, Abschneiden der Front. Wenn Sie bereits ein 2-stelliges Datum oder einen zweistelligen Monat haben, wird es in 3 Zeichen umgewandelt, dann wird das erste entfernt.

+0

Ich entschied mich, dies zu beantworten, anstatt aus verschiedenen Gründen als Betrogene zu markieren. Erstens ist das Format, nach dem der Benutzer gefragt hat, völlig anders als das, nach dem meine verknüpfte Frage gesucht hat. Zweitens würde der Titel der Frage dazu führen, dass Personen, die versuchen, ein nicht datumsbezogenes Problem zu lösen, auch hier ankommen. – krillgar

+0

Nur eine Anmerkung, Duples sind als Wegweiser für Leute gedacht, die mit anderen Suchbegriffen suchen. Wenn Sie eine Frage als Betrogene schließen, wird sie immer noch auf Personen hinweisen, die hier ankommen und versuchen, ein nicht datumsbezogenes Problem in die richtige Richtung zu bringen. [Das Markieren von Duplikaten hilft zukünftigen Benutzern, die richtigen Ressourcen zu finden.] (Https://stackoverflow.blog/2010/11/16/dr-strangedupe-or-how-i-learned-tostop- worrying-and-love-duplication /) – Cecilia

+0

Aber das sagte, dein Link war sowieso nicht der beste Betrogene. :) – Cecilia

0

Ich habe dieses Problem getestet und ich es so bekommen arbeiten:

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

}); 

Ich hoffe, das ist, was Sie :)

Grüße wollte,

Verwandte Themen