[buddypress-trac] [BuddyPress Trac] #5781: strtotime() is evil don't use it

buddypress-trac noreply at wordpress.org
Sat Sep 3 13:44:18 UTC 2016


#5781: strtotime() is evil don't use it
--------------------------+-----------------------
 Reporter:  r-a-y         |       Owner:  r-a-y
     Type:  defect (bug)  |      Status:  assigned
 Priority:  normal        |   Milestone:  2.7
Component:  Core          |     Version:
 Severity:  normal        |  Resolution:
 Keywords:  has-patch     |
--------------------------+-----------------------

Comment (by jdgrimes):

 I just happened to see this ticket noted in the dev chat notes posted on
 the bpdevel blog. I've been [https://core.trac.wordpress.org/ticket/37910
 playing a bit with dates and times] in WordPress recently, and this ticket
 seemed to contradict my findings, so I thought I would take a closer look.
 My conclusion is that specifying UTC when using `strtotime()` is entirely
 unnecessary.


 Replying to [comment:10 r-a-y]:
 > As for the inconsistencies with time parsing, I still think altering all
 our `strtotime()` calls to add `+0000` would be safer.  WordPress does the
 same thing (see comment:4).
 >
 > Here's the main takeaway, all our `strtotime()` calls assume that GMT is
 the default timezone.
 >
 > In the documentation for `strtotime()`, this is what is stated:
 >
 > > Each parameter of this function '''uses the default time zone unless a
 time zone is specified''' in that parameter. Be careful not to use
 different time zones in each parameter unless that is intended. (emphasis
 added)

 The examples of where WordPress does this that you pointed out are all
 really ancient. They are left-over from a time when WordPress used to just
 let the server timezone be whatever it wanted to be. Today however,
 [https://core.trac.wordpress.org/browser/tags/4.6/src/wp-settings.php#L53
 WordPress always sets the default timezone to UTC], so `date()`, `time()`,
 and `strtotime()` will return UTC times by default. This is reflected in
 [https://core.trac.wordpress.org/browser/tags/4.6/src/wp-
 admin/includes/revision.php#L168 newer code].

 This is all just FYI. But basically I'm saying that there is no need to
 switch out `strtotime()`  for `mysql2date()` just for timezone issues.

--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/5781#comment:18>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac


More information about the buddypress-trac mailing list