# PHP Date and Time

PHP provides a powerful set of functions for manipulating dates and times.

---

## 1. The `date()` Function
The `date()` function formats a timestamp to a more readable date and time.

```php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("l"); // Outputs day of week
```

### Common Format Characters
*   `d` - Day of the month (01 to 31)
*   `m` - Month (01 to 12)
*   `Y` - Year (in 4 digits)
*   `l` - Day of the week
*   `H` - 24-hour format of an hour (00 to 23)
*   `i` - Minutes with leading zeros (00 to 59)
*   `s` - Seconds with leading zeros (00 to 59)
*   `a` - Lowercase Ante meridiem and Post meridiem (am or pm)

## 2. Get a Time (Timestamp)
The `time()` function returns the current time as a Unix timestamp (the number of seconds since January 1 1970 00:00:00 GMT).

```php
$t = time();
echo($t . "<br>");
echo(date("Y-m-d", $t));
```

## 3. Create a Date with `mktime()`
The `mktime()` function returns the Unix timestamp for a date.
Syntax: `mktime(hour, minute, second, month, day, year)`

```php
$d = mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
```

## 4. String to Time `strtotime()`
The `strtotime()` function is used to convert a human readable string to a Unix time.

```php
$d = strtotime("10:30pm April 15 2014");
echo "Created date is " . date("Y-m-d h:i:sa", $d);

$d = strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d);
```

## 5. Timezones
If the time returned is not correct, it's probably because your server is in another country or set up for a different timezone.

```php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
```

[[programming/php/php]]