Date.getDay () javascript trả về ngày sai


146

Xin chào, tôi là người mới trong javascript Tôi có mã javascript như vậ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;
}

lấy ví dụ: DATE.value = "11/11/1991"

khi tôi gọi alert(day);nó cho tôi thấy 3;
Khi tôi gọi alert(d);nó là trả lại cho tôi thông tin chính xác.


Câu trả lời:


329

sử dụng .getDatethay vì .getDay.

Giá trị được trả về bởi getDay là một 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.


154
Thực sự ngu ngốc khi người thiết kế chức năng này đã không gọi nó là Tuần lễ getDayOf. Không, đó sẽ là quá rõ ràng.
AndroidDev

41
@AndroidDev Tôi đồng ý! Hơn nữa, .getDatengười ta mong đợi được trả lại ngày đầy đủ, không chỉ trong ngày.

47
Thêm nữa: hàm getMonth trả về một số nguyên từ 0 đến 11, với 0 cho tháng 1 và 11 cho tháng 12. Họ phải hút một số thứ nặng ở đó
taralex

13
Đây là NGAY LẬP TỨC: getYear () thực sự là năm trừ 1900!
Guilhem Fry

Thiết kế hoàn toàn không phù hợp ~Date.getYear() okay, Date.getMonth() okay, Date.getDate() what?
Eddie B


8

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


5

Tôi đã có một vấn đề tương tự. date.getMonth()trả về một chỉ số từ 0 to 11. Tháng giêng là 0. Nếu bạn tạo một dự án mới date()và bạn muốn nhận thông tin về một ngày không phải là ngày hiện tại, bạn phải giảm chỉ trong tháng 1.

Như thế 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()];
}

Awesome Sven ... đó là giải pháp cho tôi, trừ một người tại moth ... cảm ơn.
juanram0n

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

1

Từ giờ bạn có thể muốn sử dụng các hàm sau đây cho các đối tượng Date:

    function dayOf(date)
    {
        return date.getDate();
    }

    function monthOf(date)
    {
        return date.getMonth() + 1;
    }

    function yearOf(date)
    {
        return date.getYear() + 1900;
    }

    function weekDayOf(date)
    {
        return date.getDay() + 1;
    }
    
    var date = new Date("5/15/2020");
    console.log("Day: " + dayOf(date));
    console.log("Month: " + monthOf(date));
    console.log("Year: " + yearOf(date));

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.