# date_lang

(PHP 3, PHP 4 )

date_lang -- Format a local time/date with the language you want.
It is a clone of the native date() function, but works with any language !

## Description

string date_lang ( string format [, int timestamp])

Returns a string formatted according to the given format string using the given integer `timestamp` or the current local time if no timestamp is given. In otherwords, `timestamp` is optional and defaults to the value of time().
You MUST initialise the variables $_SESSION["date_lang"]["language"] and $_SESSION["date_lang"]["lang_dir"] for selecting the language before any call of date_lang fonction.
For example :
`$_SESSION["date_lang"]["language"]="fr";
$_SESSION["date_lang"]["lang_dir"]="/var/www/html/langfiles/";
date_lang("d m Y");
date_lang("l",1054115595);
...`

> Note: The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer). On windows this range is limited from 01-01-1970 to 19-01-2038.

> To generate a timestamp from a string representation of the date, you may be able to use strtotime(). Additionally, some databases have functions to convert their date formats into timestamps (such as MySQL's UNIX_TIMESTAMP function).

Table 1. The following characters are recognized in the `format` parameter string

`format` character | Description | Example returned values
--- | --- | ---
`a` | Lowercase Ante meridiem and Post meridiem | `am` or `pm`
`A` | Uppercase Ante meridiem and Post meridiem | `AM` or `PM`
`B` | Swatch Internet time | `000` through `999`
`d` | Day of the month, 2 digits with leading zeros | `01` to `31`
`D` | A textual representation of a day, three letters | `Mon` through `Sun`
`F` | A full textual representation of a month, such as January or March | `January` through `December`
`g` | 12-hour format of an hour without leading zeros | `1` through `12`
`G` | 24-hour format of an hour without leading zeros | `0` through `23`
`h` | 12-hour format of an hour with leading zeros | `01` through `12`
`H` | 24-hour format of an hour with leading zeros | `00` through `23`
`i` | Minutes with leading zeros | `00` to `59`
`I` (capital i) | Whether or not the date is in daylights savings time | `1` if Daylight Savings Time, `0` otherwise.
`j` | Day of the month without leading zeros | `1` to `31`
`l` (lowercase 'L') | A full textual representation of the day of the week | `Sunday` through `Saturday`
`L` | Whether it's a leap year | `1` if it is a leap year, `0` otherwise.
`m` | Numeric representation of a month, with leading zeros | `01` through `12`
`M` | A short textual representation of a month, three letters | `Jan` through `Dec`
`n` | Numeric representation of a month, without leading zeros | `1` through `12`
`O` | Difference to Greenwich time (GMT) in hours | Example: `+0200`
`r` | RFC 822 formatted date | Example: `Thu, 21 Dec 2000 16:01:07 +0200`
`s` | Seconds, with leading zeros | `00` through `59`
`S` | English ordinal suffix for the day of the month, 2 characters | `st`, `nd`, `rd` or `th`. Works well with `j`
`t` | Number of days in the given month | `28` through `31`
`T` | Timezone setting of this machine | Examples: `EST`, `MDT` ...
`U` | Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) | See also time()
`w` | Numeric representation of the day of the week | `0` (for Sunday) through `6` (for Saturday)
`W` | ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0) | Example: `42` (the 42nd week in the year)
`Y` | A full numeric representation of a year, 4 digits | Examples: `1999` or `2003`
`y` | A two digit representation of a year | Examples: `99` or `03`
`z` | The day of the year | `0` through `366`
`Z` | Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. | `-43200` through `43200`

Unrecognized characters in the format string will be printed as-is.