2012-11-13 4 views
77

こんにちは私よ、私は、このようなJavaScriptコードを持っているJavaScriptの に新しいDate.getDay()のJavaScript間違っ日返し

alert(DATE.value); 
    var d = new Date(DATE.value); 
    var year = d.getFullYear(); 
    var month = d.getMonth(); 
    var day = d.getDay(); 
    alert(month); 
    alert(day); 
    if(2012 < year < 1971 | 1 > month+1 > 12 | 0 >day > 31){ 
     alert(errorDate); 
     DATE.focus(); 
     return false; 
    } 

DATE.value = "1991年11月11日"

私が呼び出すときアラート(日);それは私に3を示す;
アラートを呼び出すと(d);正しい情報を返します

+0

を呼び出す[...月曜日ました](http://www.dayoftheweek.org/?m = 11月&d = 11&y = 1991&go = Go) – gdoron

答えて

181

.getDayの代わりに.getDateを使用してください。

getDayから返される値は、曜日(0は日曜日、1は月曜日、2は火曜日など)に対応する整数です。 getDayに関するMDNから

+0

助けてくれてありがとう –

+78

この関数のデザイナーはgetDayOf Weekと呼ばれていませんでした。いいえ、それはあまりにも明白でした。 – AndroidDev

+16

@AndroidDev私は同意します!さらに、 '.getDate'では、1日だけでなく、完全な日付が返されることを期待しています。 –

8

getDay()あなたの曜日を与えるだろう。あなたはgetDate()を探しています。

3

私にも同様の問題がありました。 date.getMonth()は、0 to 11の範囲のインデックスを返します。 1月は0です。新しいdate()オブジェクトを作成し、現在のものではない衣装日付に関する情報を取得する場合は、月のみを1だけ減らす必要があります。このよう

function getDayName() { 
var year = 2016; 
var month = 4; 
var day = 11; 

var date = new Date(year, month-1, day); 
var weekday = new Array("sunday", "monday", "tuesday", "wednesday", 
        "thursday", "friday", "saturday"); 

return weekday[date.getDay()]; 
} 
+0

驚くばかりのSven ...それは私のための解決策です。 – Juanra

1
function formatDate(date, callback) 
{ 
var weekday = new Array("Sunday", "Monday", "Tuesday", "Wednesday",  "Thursday", "Friday", "Saturday"); 
var day = weekday[date.getDay()]; 
console.log('day',day); 
var d = date.getDate(); 
var hours = date.getHours(); 
ampmSwitch = (hours > 12) ? "PM" : "AM"; 
if (hours > 12) { 
    hours -= 12; 

} 
else if (hours === 0) { 
    hours = 12; 
} 
var m = date.getMinutes(); 
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; 
var month = months[date.getMonth()]; 
var year = date.getFullYear(); 
newdate = day + ', ' + month + ' ' + d + ',' + year + ' at ' + hours + ":" + m + " " + ampmSwitch 
callback(newdate) 
} 

このコード

date="Fri Aug 26 2016 18:06:01 GMT+0530 (India Standard Time)" 
formatDate(date,function(result){ 
    console.log('Date=',result); 
}); 
関連する問題