The date module defines a highly configurable date/time field type for the content module and a date API that can be used by other applications.
Date Field Types
You have a choice of creating an ISO date or a unix timestamp. If you are porting information from another application you may want to create a field using a type that matches the source data. Some advantages and disadvantages of each include:
- Datestamp (Unix Timestamp)
- Stores the date as an integer.
- Takes up less room in the database because it\'s smaller.
- Often easier to use for date calculations because you can increase or decrease it just by adding or subtracting seconds.
- It is the format used by php date functions.
- It must be filled with a complete date -- year, month, day, hour, minute, second, so you sometimes have to arbitrarily set some of these values even if they are not applicable.
- Date (ISO Date)
- Stores the date in an ISO format (YYYY-MM-DDTHH:MM:SS).
- The data is in a human-readable form.
- You can use it for incomplete dates, i.e. only a year or only a year and a month, and pad the other values with zeros, so it does not appear to be any more precise than it really is.
- It is a format that is internationally-recognized, and it is used as-is on many web sites and in many applications.
Date Widgets
There are several widgets to choose from to control how users can enter data for this field.
- Text Field
- The Text Field date widget uses the strtotime function to construct a date and will accept input allowed by the php strtotime function. This allows the user to type a date in in many natural formats, like March 31, 1980 or 3/10/1980 or in numeric formats like YYYY-MM-DD.
The strtotime function will assume date shortcuts are in American format (MM/DD/YY), and it will not work for dates prior to 1970.
- Select List
- The Select List date widget presents users with a drop-down list or textfield for each part of the date (year, month, day, hour, etc.). The whole selector is collapsed onto a single line using css (except for the timezone selector, if date-specific timezones are collected). The selector is highly configurable and will even handle years prior to 1900.
- jQuery Pop-up Calendar
- The Javascript Pop-up Calendar is offered as an input alternative if the Date Popup module is installed. This widget can handle dates as early as 1900.