2012-11-13 37 views
77

Hi Tôi mới trong javascript Tôi có ví dụ mã javascriptDate.getDay() javascript trả về sai ngày

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"

khi tôi gọi cảnh báo (ngày); nó cho tôi thấy 3;
khi tôi gọi cảnh báo (d); nó trả về cho tôi thông tin chính xác

+0

[Đã thứ hai ...] (http://www.dayoftheweek.org/?m = Tháng mười một & d = 11 & y = 1991 & go = Go) – gdoron

Trả lời

181

sử dụng .getDate thay vì .getDay.

Giá trị được trả về bởi getDay là số nguyên tương ứng với ngày trong tuần: 0 cho Chủ Nhật, 1 cho Thứ Hai, 2 cho Thứ Ba, v.v.

+0

cảm ơn sự giúp đỡ) –

+78

Thực sự câm mà các nhà thiết kế của chức năng này đã không gọi nó là getDayOf Week. Không, điều đó quá rõ ràng. – AndroidDev

+16

@AndroidDev Tôi đồng ý! Hơn nữa, với '.getDate', người ta hy vọng sẽ được trả lại ngày đầy đủ, không chỉ trong ngày. –

8

getDay() sẽ cung cấp cho bạn các ngày trong tuần. Bạn đang tìm kiếm getDate().

3

Tôi gặp sự cố tương tự. date.getMonth() trả về chỉ mục từ 0 to 11. Tháng 1 là 0. Nếu bạn tạo một date() -object mới và bạn muốn nhận thông tin về ngày chi phí không phải là ngày hiện tại, bạn phải giảm chỉ một tháng theo số 1.

Giống như này:

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

Tuyệt vời Sven ... đó là giải pháp cho tôi, trừ một ở moth ... cảm ơn. – 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) 
} 

và gọi với mã này

date="Fri Aug 26 2016 18:06:01 GMT+0530 (India Standard Time)" 
formatDate(date,function(result){ 
    console.log('Date=',result); 
}); 
Các vấn đề liên quan