Running web scripts in your Timezone

From DreamHost
Jump to: navigation, search

Overview

Many web programs log or show the time. If these programs use the local time, it'll show the US West Coast Timezone (PST) that DreamHost uses for its servers.

However, you can change that for your scripts.

Finding your timezone

You can find a list of known timezones on your server. You must first create a shell user. Then, you can access your server via SSH where you can find timezones in the following location:

/usr/share/zoneinfo/zone.tab

For instance, if you live in or near Buenos Aires, Argentina (in South America), your timezone is found in a line like this:

AR  -3436-05827 America/Argentina/Buenos_Aires  Buenos Aires (BA, CF)
  • The first field is the ISO 3166 2-character country code: AR in the example stands for Argentina.
  • The second field is the latitude and longitude of the zone's principal location in ISO 6709 sign-degrees-minutes-seconds format. Either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS, first latitude (+ is north), then longitude (+ is east). In the example, -3436-05287 stands for 34°36'S 52°87'W.
  • The third field is the most important: this is the zone name and the one you have to remember. America/Argentina/Buenos_Aires appears in this example.
  • There may be a fourth field with comments that may help you identify other localities covered in the zone.

You can also check this list from Wikipedia for further information:

Changing the timezone in a PHP script

PHP

Use one of the following options in your PHP code before running any other date functions:

ini_set("date.timezone", "your preferred timezone");
-or-
date_default_timezone_set("your preferred timezone");

You can find your timezone by visiting the following page:

Changing the timezone in a php.ini file

Additionally, if you want all of your sites under a user to run in a specific timezone, you can create a phprc file. In that file, add the following line:

date.timezone=(your/timezone)

Kill off all running PHP processes as stated in the article. When you finish, all PHP scripts use the timezone specified in this file.

MYSQL

For MySQL in any case, set your preferred UTC/GMT timezone by running the following query before any other. Note that this query must run at the start of each script file execution as the change lasts for only as long as your script runs or you're connected to the MySQL server (example ues the PHP mysql_query function, where -X- is your UTC/GMT hour offset):

mysql_query("SET time_zone = '+X:00';");

For more information, please visit:

See also