2016-10-17 3 views
-1

誰かがこのコードを説明できますか?私はJSに慣れていないので、永久的な解決策を得るためにいくつかの助けが必要です。私が下のフルコードで5行目を変更するまで、間違った年が表示されていました。数週間前にコードを変更しましたが、突然停止しました。年はJavaScriptコードでは機能しません

Iから5行目を変更:それは働いていたと私は理由は分からない

if (myDate.getMonth() < 1) { 

:へ

if (myDate.getMonth() < 10) { 

ここに完全なコードがあります。コードの変更が最終的には機能しなくなると思われます。

誰かがより良いソリューションを提供できますか?

$(document).ready(function() { 
var myDate = new Date(); 
myDate.setDate(myDate.getDate()+1); 
if (myDate.getMonth() < 1) { 
    var betterMonth = "0" + (myDate.getMonth() + 1); 
} else { 
    var betterMonth = (myDate.getMonth() + 1);   
} 

var prettyDate = betterMonth + '/' + (myDate.getDate()) + '/' + myDate.getFullYear(); 
$("#formDelivery").val(prettyDate);   

$("#formPhoneNumber").mask("(999) 999-9999");   
$("#contactPhoneNumber").mask("(999) 999-9999");    

jQuery.validator.addMethod("phoneUS", function(phone_number, element) { 
    phone_number = phone_number.replace(/\s+/g, ""); 
    return this.optional(element) || phone_number.length > 9 && 
    phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/); 
    }, "Please specify a valid phone number"); 

$("#orderForm").validate({ 
    rules: { 
     field: { 
      required: true, 
      phoneUS: true 
     } 
    } 
}); 
$("#formDelivery").mask("99/99/9999", {placeholder:"_"}).datepicker({ minDate: +14 }); 

});

+1

"働く"とは何でしょうか?このコードで何をしようとしていますか? – Jecoms

+0

あなたはあなたの問題が何であるかは言いませんでしたが、私はあなたの月が事前ゼロ化されることを前提としています。あなたは - > 'var betterMonth =( '0' +(d.getMonth()+ 1))。slice(-2);'のようなことをすることができ、あなたのifを完全に取り除くことができます。もちろん、getDate()でも同じことができます。 :) – Keith

+0

あなたの問題は月ではなく年であると確信していますか? – Barmar

答えて

1

あなたが変更行を見てみましょう...

if (myDate.getMonth() < 10) { 
    var betterMonth = "0" + (myDate.getMonth() + 1); 

「現在の月が10未満であれば、」これは言って、そしてその意図は、一桁の数ヶ月につながる0を追加することです。私がここに見る問題は、getMonth()の返り値は月の0インデックスのリストなので、0は実際には1月、1は2月などであるということです。

このことを念頭に置いて:

コードif (myDate.getMonth() < 10) {は本当に「現在の月が11月未満である場合には、前述の0を追加します」と言っています。間違った「年」が返されていると言ったら、「月」を意味しましたか?私は確かにこのコードは10の代わりに010を10月に出力します。私はそれがこの知識で武装して...

if (myDate.getMonth() < 9) { 

JSFiddle Example


あるべきと考えてい

あなたの修正が働いなぜ、あなたは今、実現することができます。月が2月より前の場合は、数字を「1」に変更すると、先行する0が追加されます。あなたの解決策は2月まで転がり、02/01/2016の代わりに2/01/2016と表示されます。

関連する問題