How to include additional info in day cells

?
February, 2025
Today
wkSunMonTueWedThuFriSat
4      1
 
52
 
3
 
4
 
5
 
6
 
7
 
8
 
69
 
10
 
11
 
12
 
13
 
14
 
15
 
716
 
17
 
18
 
19
 
20
 
21
 
22
 
823
 
24
 
25
 
26
 
27
 
28
 
 
9       
Select date
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec

The idea is simple:

  1. Define a callback that takes two parameters like this:

    function getDateText(date, d)

    This function will receive the date object as the first parameter and the current date number (1..31) as the second (you can get it as well by calling date.getDate() but since it's very probably useful I thought I'd pass it too so that we can avoid a function call).

    This function must return the text to be inserted in the cell of the passed date. That is, one should at least "return d;".

  2. Pass the above function as the "dateText" parameter to Calendar.setup.

The function could simply look like:

  function getDateText(date, d) {
    if (d == 12) {
      return "12th";
    } else if (d == 13) {
      return "bad luck";
    } /* ... etc ... */
  }

but it's easy to imagine that this approach sucks. For a better way, see the source of this page and note the usage of an externally defined "dateText" object which maps "date" to "date info", also taking into account the year and month. This object can be easily generated from a database, and the getDateText function becomes extremely simple (and static).

Cheers!


mishoo
Last modified: Sat Mar 5 17:18:06 EET 2005