[PHP] timezone
I have a client that has an app the runs with PHP 5.1.6. They want to upgrade to 5.3.3. First issue I ran into, they have a line of code that is: $deftz = date("T"); I'm getting this for that line: [Mon Apr 15 10:44:16 2013] [error] [client 10.7.14.21] PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Denver' for 'MDT/-6.0/DST' instead in /home/www/itrade-dev/defs.inc on line 349 So I changed it to $deftz = date.timezone; and now I get: [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: Use of undefined constant date - assumed 'date' in /home/www/itrade-dev/defs.inc on line 349 [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: Use of undefined constant timezone - assumed 'timezone' in /home/www/itrade-dev/defs.inc on line 349 Why is this undefined? -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] timezone
On Mon, Apr 15, 2013 at 12:14 PM, Larry Martell wrote: > I have a client that has an app the runs with PHP 5.1.6. They want to > upgrade to 5.3.3. First issue I ran into, they have a line of code > that is: > > $deftz = date("T"); > > I'm getting this for that line: > > [Mon Apr 15 10:44:16 2013] [error] [client 10.7.14.21] PHP Warning: > date(): It is not safe to rely on the system's timezone settings. You > are *required* to use the date.timezone setting or the > date_default_timezone_set() function. In case you used any of those > methods and you are still getting this warning, you most likely > misspelled the timezone identifier. We selected 'America/Denver' for > 'MDT/-6.0/DST' instead in /home/www/itrade-dev/defs.inc on line 349 > > So I changed it to > > $deftz = date.timezone; > > and now I get: > > [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: > Use of undefined constant date - assumed 'date' in > /home/www/itrade-dev/defs.inc on line 349 > [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: > Use of undefined constant timezone - assumed 'timezone' in > /home/www/itrade-dev/defs.inc on line 349 > > Why is this undefined? > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > You need to set the default time zone in this fashion, http://php.net/manual/en/function.date-default-timezone-set.php
Re: [PHP] timezone
On Mon, Apr 15, 2013 at 11:17 AM, Jonathan Sundquist wrote: > > > > On Mon, Apr 15, 2013 at 12:14 PM, Larry Martell > wrote: >> >> I have a client that has an app the runs with PHP 5.1.6. They want to >> upgrade to 5.3.3. First issue I ran into, they have a line of code >> that is: >> >> $deftz = date("T"); >> >> I'm getting this for that line: >> >> [Mon Apr 15 10:44:16 2013] [error] [client 10.7.14.21] PHP Warning: >> date(): It is not safe to rely on the system's timezone settings. You >> are *required* to use the date.timezone setting or the >> date_default_timezone_set() function. In case you used any of those >> methods and you are still getting this warning, you most likely >> misspelled the timezone identifier. We selected 'America/Denver' for >> 'MDT/-6.0/DST' instead in /home/www/itrade-dev/defs.inc on line 349 >> >> So I changed it to >> >> $deftz = date.timezone; >> >> and now I get: >> >> [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: >> Use of undefined constant date - assumed 'date' in >> /home/www/itrade-dev/defs.inc on line 349 >> [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: >> Use of undefined constant timezone - assumed 'timezone' in >> /home/www/itrade-dev/defs.inc on line 349 >> >> Why is this undefined? >> > You need to set the default time zone in this fashion, > > http://php.net/manual/en/function.date-default-timezone-set.php But I don't know the timezone - I'm trying to get it so I can convert times I get from the database to a user requested timezone. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] timezone
You don't know which timezone the server is in? That's what it wants. Larry Martell wrote: >On Mon, Apr 15, 2013 at 11:17 AM, Jonathan Sundquist > wrote: >> >> >> >> On Mon, Apr 15, 2013 at 12:14 PM, Larry Martell > >> wrote: >>> >>> I have a client that has an app the runs with PHP 5.1.6. They want >to >>> upgrade to 5.3.3. First issue I ran into, they have a line of code >>> that is: >>> >>> $deftz = date("T"); >>> >>> I'm getting this for that line: >>> >>> [Mon Apr 15 10:44:16 2013] [error] [client 10.7.14.21] PHP Warning: >>> date(): It is not safe to rely on the system's timezone settings. >You >>> are *required* to use the date.timezone setting or the >>> date_default_timezone_set() function. In case you used any of those >>> methods and you are still getting this warning, you most likely >>> misspelled the timezone identifier. We selected 'America/Denver' for >>> 'MDT/-6.0/DST' instead in /home/www/itrade-dev/defs.inc on line 349 >>> >>> So I changed it to >>> >>> $deftz = date.timezone; >>> >>> and now I get: >>> >>> [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: >>> Use of undefined constant date - assumed 'date' in >>> /home/www/itrade-dev/defs.inc on line 349 >>> [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: >>> Use of undefined constant timezone - assumed 'timezone' in >>> /home/www/itrade-dev/defs.inc on line 349 >>> >>> Why is this undefined? >>> >> You need to set the default time zone in this fashion, >> >> http://php.net/manual/en/function.date-default-timezone-set.php > >But I don't know the timezone - I'm trying to get it so I can convert >times I get from the database to a user requested timezone. > >-- >PHP General Mailing List (http://www.php.net/) >To unsubscribe, visit: http://www.php.net/unsub.php Thanks, Ash http://www.ashleysheridan.co.uk
Re: [PHP] timezone
On Mon, Apr 15, 2013 at 11:33 AM, Ashley Sheridan wrote: > You don't know which timezone the server is in? That's what it wants. No, I don't - this app runs in different locations all over the world. > Larry Martell wrote: >> >> On Mon, Apr 15, 2013 at 11:17 AM, Jonathan Sundquist >> wrote: >> >> >> >>> On Mon, Apr 15, 2013 at 12:14 PM, Larry Martell >>> wrote: >>> I have a client that has an app the runs with PHP 5.1.6. They want to upgrade to 5.3.3. First issue I ran into, they have a line of code that is: $deftz = date("T"); I'm getting this for that line: [Mon Apr 15 10:44:16 2013] [error] [client 10.7.14.21] PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Denver' for 'MDT/-6.0/DST' instead in /home/www/itrade-dev/defs.inc on line 349 So I changed it to $deftz = date.timezone; and now I get: [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: Use of undefined constant date - assumed 'date' in /home/www/itrade-dev/defs.inc on line 349 [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: Use of undefined constant timezone - assumed 'timezone' in /home/www/itrade-dev/defs.inc on line 349 Why is this undefined? >>> >>> >>> You need to set the default time zone in this fashion, >>> >>> http://php.net/manual/en/function.date-default-timezone-set.php >> >> >> But I don't know the timezone - I'm trying to get it so I can convert >> times I get from the database to a user requested timezone. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] timezone
On Mon, Apr 15, 2013 at 11:35 AM, Larry Martell wrote: > On Mon, Apr 15, 2013 at 11:33 AM, Ashley Sheridan > wrote: >> You don't know which timezone the server is in? That's what it wants. > > No, I don't - this app runs in different locations all over the world. I found some code at php.net that does this: date_default_timezone_set(@date_default_timezone_get()); $deftz = date('T'); And that is working for me and giving me what I need. >> Larry Martell wrote: >>> >>> On Mon, Apr 15, 2013 at 11:17 AM, Jonathan Sundquist >>> wrote: >>> >>> >>> On Mon, Apr 15, 2013 at 12:14 PM, Larry Martell wrote: > I have a client that has an app the runs with PHP 5.1.6. They want to > upgrade to 5.3.3. First issue I ran into, they have a line of code > that is: > > $deftz = date("T"); > > I'm getting this for that line: > > [Mon Apr 15 10:44:16 2013] [error] [client 10.7.14.21] PHP Warning: > date(): It is not safe to rely on the system's timezone settings. You > are *required* to use > the date.timezone setting or the > date_default_timezone_set() function. In case you used any of those > methods and you are still getting this warning, you most likely > misspelled the timezone identifier. We selected 'America/Denver' for > 'MDT/-6.0/DST' instead in /home/www/itrade-dev/defs.inc on line 349 > > So I changed it to > > $deftz = date.timezone; > > and now I get: > > [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: > Use of undefined constant date - assumed 'date' in > /home/www/itrade-dev/defs.inc on line 349 > [Mon Apr 15 10:49:35 2013] [error] [client 10.7.14.21] PHP Notice: > Use of undefined constant timezone - assumed 'timezone' in > /home/www/itrade-dev/defs.inc on line 349 > > Why is this undefined? You need to set the default time zone in this fashion, http://php.net/manual/en/function.date-default-timezone-set.php >>> >>> >>> But I don't know the timezone - I'm trying to get it so I can convert >>> times I get from the database to a user requested timezone. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] timezone
Larry Martell wrote: No, I don't - this app runs in different locations all over the world. I found some code at php.net that does this: date_default_timezone_set(@date_default_timezone_get()); $deftz = date('T'); And that is working for me and giving me what I need. But do you ACTUALLY know what time zone is stored IN the database? What if te database was from another server? One of the 'standards' adopted when working world wide is to ensure what is stored IN the database is always UTC based. So you can always compare times on the same consistent base. The only time you need the offset is to display a local time, and that is either the time local to the server, or the time local to the client. The 'default' timezone is not necessarily the right one in either case ;) -- Lester Caine - G8HFL - Contact - http://lsces.co.uk/wiki/?page=contact L.S.Caine Electronic Services - http://lsces.co.uk EnquirySolve - http://enquirysolve.com/ Model Engineers Digital Workshop - http://medw.co.uk Rainbow Digital Media - http://rainbowdigitalmedia.co.uk -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] timezone
On Mon, Apr 15, 2013 at 1:59 PM, Lester Caine wrote: > Larry Martell wrote: >>> >>> No, I don't - this app runs in different locations all over the world. >> >> I found some code at php.net that does this: >> >> date_default_timezone_set(@date_default_timezone_get()); >> $deftz = date('T'); >> >> And that is working for me and giving me what I need. > > > But do you ACTUALLY know what time zone is stored IN the database? What if > te database was from another server? > > One of the 'standards' adopted when working world wide is to ensure what is > stored IN the database is always UTC based. So you can always compare times > on the same consistent base. The only time you need the offset is to display > a local time, and that is either the time local to the server, or the time > local to the client. > > The 'default' timezone is not necessarily the right one in either case ;) I misspoke - the data in the db is in UTC. This is used to covert the time of day on the server to the user's local timezone. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] timezone
On 15-4-2013 22:12, Larry Martell wrote: On Mon, Apr 15, 2013 at 1:59 PM, Lester Caine wrote: Larry Martell wrote: No, I don't - this app runs in different locations all over the world. I found some code at php.net that does this: date_default_timezone_set(@date_default_timezone_get()); $deftz = date('T'); And that is working for me and giving me what I need. But do you ACTUALLY know what time zone is stored IN the database? What if te database was from another server? One of the 'standards' adopted when working world wide is to ensure what is stored IN the database is always UTC based. So you can always compare times on the same consistent base. The only time you need the offset is to display a local time, and that is either the time local to the server, or the time local to the client. The 'default' timezone is not necessarily the right one in either case ;) I misspoke - the data in the db is in UTC. This is used to covert the time of day on the server to the user's local timezone. You are aware that the code you used is really bad practice, right? You're basically hiding the error "no default timezone set" by getting the default timezone, which returns an error; surpressing that error, providing the date_default_timezone_set function with the default value of date_default_timezone_get if none is defined (which there should!!), being "UTC". So in short, you're saying "set the default timezone to the default timezone if no timezone is set, which I know there is not". That's very hard to understand for future programmers reading your code. Why not just set "date_default_timezone_set('UTC')". It's clear, resolves the warning and works perfectly, instead of relying on vague defaults somewhere, in the hope they're set right. On a sidenote; the reason why your original "fix" did not work: $deftz = date.timezone; Is because date.timezone is an ini setting. Not valid PHP code. And the error actually tells you you need to SET date.timezone, not set a variable TO the ini setting. In other words, you wanted date.timezone = "UTC" instead of $tz = date.timezone (which makes no sense anyway) -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] timezone
On Mon, Apr 15, 2013 at 2:57 PM, Maciek Sokolewicz wrote: > On 15-4-2013 22:12, Larry Martell wrote: >> >> On Mon, Apr 15, 2013 at 1:59 PM, Lester Caine wrote: >>> >>> Larry Martell wrote: > > > No, I don't - this app runs in different locations all over the world. I found some code at php.net that does this: date_default_timezone_set(@date_default_timezone_get()); $deftz = date('T'); And that is working for me and giving me what I need. >>> >>> >>> >>> But do you ACTUALLY know what time zone is stored IN the database? What >>> if >>> te database was from another server? >>> >>> One of the 'standards' adopted when working world wide is to ensure what >>> is >>> stored IN the database is always UTC based. So you can always compare >>> times >>> on the same consistent base. The only time you need the offset is to >>> display >>> a local time, and that is either the time local to the server, or the >>> time >>> local to the client. >>> >>> The 'default' timezone is not necessarily the right one in either case ;) >> >> >> I misspoke - the data in the db is in UTC. This is used to covert the >> time of day on the server to the user's local timezone. >> > > You are aware that the code you used is really bad practice, right? You're > basically hiding the error "no default timezone set" by getting the default > timezone, which returns an error; surpressing that error, providing the > date_default_timezone_set function with the default value of > date_default_timezone_get if none is defined (which there should!!), being > "UTC". > > So in short, you're saying "set the default timezone to the default timezone > if no timezone is set, which I know there is not". That's very hard to > understand for future programmers reading your code. Why not just set > "date_default_timezone_set('UTC')". It's clear, resolves the warning and > works perfectly, instead of relying on vague defaults somewhere, in the hope > they're set right. > > On a sidenote; the reason why your original "fix" did not work: > $deftz = date.timezone; > Is because date.timezone is an ini setting. Not valid PHP code. And the > error actually tells you you need to SET date.timezone, not set a variable > TO the ini setting. In other words, you wanted date.timezone = "UTC" instead > of $tz = date.timezone (which makes no sense anyway) But UCT is not the timezone. When this app runs in New Mexico (where I am) it's Mountain time. When it runs in NY it's Eastern. When it runs in Tokyo it's JST, etc. The user has the option of setting the timezone all times are displayed in. They can select any timezone regardless of where they are. The app displays the last update time in the user selected TZ. So I have to convert the time I get from the server to that. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] timezone
On 15 April 2013 23:06, Larry Martell wrote: > But UCT is not the timezone. When this app runs in New Mexico (where I > am) it's Mountain time. When it runs in NY it's Eastern. When it runs > in Tokyo it's JST, etc. The user has the option of setting the > timezone all times are displayed in. They can select any timezone > regardless of where they are. The app displays the last update time in > the user selected TZ. So I have to convert the time I get from the > server to that. > Most servers provide UTC time regardless of the exact timezone they are situated in and then leave it to the user to show it in the right timezone to the user. The timezone you want to set is the timezone you GET the time in. Not necesserily the timezone your device resides in.
Re: [PHP] timezone
On Mon, Apr 15, 2013 at 10:06 PM, Larry Martell mailto:la...@software-horizons.com";>> wrote: On Mon, Apr 15, 2013 at 2:57 PM, Maciek Sokolewicz wrote: > On 15-4-2013 22:12, Larry Martell wrote: >> >> On Mon, Apr 15, 2013 at 1:59 PM, Lester Caine wrote: >>> >>> Larry Martell wrote: > > > No, I don't - this app runs in different locations all over the world. I found some code at php.net that does this: date_default_timezone_set(@date_default_timezone_get()); $deftz = date('T'); And that is working for me and giving me what I need. >>> >>> >>> >>> But do you ACTUALLY know what time zone is stored IN the database? What >>> if >>> te database was from another server? >>> >>> One of the 'standards' adopted when working world wide is to ensure what >>> is >>> stored IN the database is always UTC based. So you can always compare >>> times >>> on the same consistent base. The only time you need the offset is to >>> display >>> a local time, and that is either the time local to the server, or the >>> time >>> local to the client. >>> >>> The 'default' timezone is not necessarily the right one in either case ;) >> >> >> I misspoke - the data in the db is in UTC. This is used to covert the >> time of day on the server to the user's local timezone. >> > > You are aware that the code you used is really bad practice, right? You're > basically hiding the error "no default timezone set" by getting the default > timezone, which returns an error; surpressing that error, providing the > date_default_timezone_set function with the default value of > date_default_timezone_get if none is defined (which there should!!), being > "UTC". > > So in short, you're saying "set the default timezone to the default timezone > if no timezone is set, which I know there is not". That's very hard to > understand for future programmers reading your code. Why not just set > "date_default_timezone_set('UTC')". It's clear, resolves the warning and > works perfectly, instead of relying on vague defaults somewhere, in the hope > they're set right. > > On a sidenote; the reason why your original "fix" did not work: > $deftz = date.timezone; > Is because date.timezone is an ini setting. Not valid PHP code. And the > error actually tells you you need to SET date.timezone, not set a variable > TO the ini setting. In other words, you wanted date.timezone = "UTC" instead > of $tz = date.timezone (which makes no sense anyway) But UCT is not the timezone. When this app runs in New Mexico (where I am) it's Mountain time. When it runs in NY it's Eastern. When it runs in Tokyo it's JST, etc. The user has the option of setting the timezone all times are displayed in. They can select any timezone regardless of where they are. The app displays the last update time in the user selected TZ. So I have to convert the time I get from the server to th...@lsces.co.uk>@gmail.com>@gmail.com> You don't need to convert anything! Store as unix timestamps, and call date_default_timezone_set with the user's selection before you use any other date-related functions and everything will just work. This is not as hard as everyone seems to think!-Stuart — Sent from my leaf blo...@gmail.com>@lsces.co.uk>@gmail.com>@lsces.co.uk>@gmail.com>