Hướng dẫn to display the calendar using javascript code by getting the year from the user - để hiển thị lịch bằng mã javascript bằng cách lấy năm từ người dùng

Tổng quan

Trong hướng dẫn này, tôi sẽ trình bày một lịch lên một trang web với một vài dòng JavaScript. Lịch sẽ bao gồm các thả xuống trong các tháng và năm chỉ sử dụng JavaScript cũ đơn giản. Quá trình sẽ như sau:

  • Kết xuất các tháng vào một thả xuống
  • Kết xuất những năm vào một thả xuống
  • Kết hợp các ngày cho sự kết hợp tháng/năm hiện được lựa chọn
  • Vua lại lịch khi các tháng/năm được thay đổi

Thay đổi tháng và/hoặc năm sẽ vẽ lại lịch để phù hợp với ngày chính xác cho tháng và năm đã cho.

Nếu bạn là người mới bắt đầu với JavaScript, hoặc chỉ cần hiểu biết thêm, tôi đánh giá cao bí mật của Ninja JavaScript mà bạn có thể mua trên Amazon tại đây. Đó là một bài đọc vững chắc và cuốn sách đưa ra một cuộc đi sâu rất sâu sắc về nhiều khía cạnh tinh tế của JavaScript cho những người mới đối với ngôn ngữ.

Lịch kết xuất cuối cùng sẽ trông giống như sau.

Thử nghiệm

MẶT TRỜI

THỨ HAI

TUE

THỨ TƯ

Thur

Thứ Sáu

ĐÃ NGỒI

HTML

Lịch bao gồm cha mẹ & nbsp; div & nbsp; với 3 thành phần chính bên trong nó. 2 thành phần đầu tiên là thả xuống trong các tháng và một thành phần khác trong một loạt các năm nhất định.div with 3 main components inside of it. The first 2 components being the dropdowns for the months and another for a given range of years.

Và bởi vì những ngày trong tuần không có khả năng thay đổi bất cứ lúc nào sớm, tôi đã đi trước và tạo ra các tiêu đề Ngày Lịch theo cách thủ công. Khi tải trang, tập lệnh sẽ lấy vào tháng và năm của người dùng hiện tại từ trình duyệt và sẽ vẽ một lịch dựa trên ngày/giờ hiện tại.

HTML


SUN
MON
TUE
WED
THUR
FRI
SAT

Lịch bao gồm cha mẹ & nbsp; div & nbsp; với 3 thành phần chính bên trong nó. 2 thành phần đầu tiên là thả xuống trong các tháng và một thành phần khác trong một loạt các năm nhất định.

Và bởi vì những ngày trong tuần không có khả năng thay đổi bất cứ lúc nào sớm, tôi đã đi trước và tạo ra các tiêu đề Ngày Lịch theo cách thủ công. Khi tải trang, tập lệnh sẽ lấy vào tháng và năm của người dùng hiện tại từ trình duyệt và sẽ vẽ một lịch dựa trên ngày/giờ hiện tại.div with the id of "months".



    var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

    function drawCalendarMonths[]
    {
        for[var i = 0; i < months.length; i++]
        {
            var doc = document.createElement["div"];
            doc.innerHTML = months[i];
            doc.classList.add["dropdown-item"];

            doc. title = [function [] {
                var selectedMonth = i;
                return function []
                {
                    month = selectedMonth;
                    document.getElementById["curMonth"].innerHTML = months[month];
                    loadCalendarDays[];
                    return month;
                }
            }][];

            document.getElementById["months"].appendChild[doc];
        }
    }

Tạo ra các tháng

May mắn cho chúng tôi, chỉ có 12 tháng trong năm và chúng tôi có thể lưu trữ chúng như một loạt các chuỗi đơn giản. Mảng này sẽ được sử dụng để tạo ra sự thả xuống trong & nbsp; div & nbsp; với ID của "tháng".loadCalendarDays[] function being called when we select a new month. This function will redraw the calendar whenever a new month is selected to reflect the new month selection.

Chạy chức năng đó, kết quả phải như sau:

Ghi chú của hàm LoadCalendardays [] được gọi khi chúng tôi chọn một tháng mới. Hàm này sẽ vẽ lại lịch bất cứ khi nào một tháng mới được chọn để phản ánh lựa chọn tháng mới.


    function loadYears[]
    {
        // whichever date range makes the most sense
        var startYear = 1900;
        var endYear = 2022;

        for[var i = startYear; i  for each one of the days calculated.

Tạo ra những ngày

Bây giờ chúng ta là trung tâm của lịch. Kết xuất ngày có phần giống với các chức năng thế hệ tháng và năm trước. Về cơ bản, chúng tôi sẽ tính toán số ngày trong một khoảng thời gian năm/tháng được chỉ định và sau đó tạo một cho mỗi ngày được tính toán.: I created a helper function called daysInMonth[] that will return the number of days in a month/year period selected. We'll essentially loop through these days and create a 'day' element onto our calendar for each one found.

Cũng lưu ý rằng chức năng này được gọi bất cứ khi nào lịch yêu cầu vẽ lại, chẳng hạn như khi chúng tôi chọn một tháng mới hoặc một năm mới từ một trong hai lần thả xuống đó.: The JavaScript Date object provides us with the getDay[] method which will return the day of the week for any given date. In our case, we want to know when the very first day of the month will lie on. And we'll ignore the previous days leaving up to that by creating empty 'day' elements with no particular meaning.


    function daysInMonth[month, year]
    {
        let d = new Date[year, month+1, 0];
        return d.getDate[];
    }

    function loadCalendarDays[]
    {
        document.getElementById["calendarDays"].innerHTML = "";

        var tmpDate = new Date[year, month, 0];
        var num = daysInMonth[month, year];
        var dayofweek = tmpDate.getDay[];       // find where to start calendar day of week

daysinmonth []: Tôi đã tạo một hàm trợ giúp gọi là & nbsp; daysinmonth [] sẽ trả về số ngày trong khoảng thời gian một tháng/năm được chọn. Về cơ bản, chúng ta sẽ lặp qua những ngày này và tạo ra một yếu tố 'ngày' trên lịch của chúng ta cho mỗi người được tìm thấy.


        // create day prefixes
        for[var i = 0; i 

Bài Viết Liên Quan

Chủ Đề