: Bug #28209 :: strtotime("now")
| Bug #28209 | strtotime("now") | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2004-04-28 21:06 UTC | Modified: | 2004-11-15 17:36 UTC |
|
||||||||||
| From: | gamin at centras dot lt | Assigned: | derick (profile) | |||||||||||
| Status: | Closed | Package: | Date/time related | |||||||||||
| PHP Version: | 5.0.0RC2 | OS: | WinXP HE SP1 | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2004-04-28 21:06 UTC] gamin at centras dot lt
Description:
------------
Simple script... doesn't matter how much time i run it - strototime("now") produces same result for whole day. On next month day it produces same result. Seems i didn't have any problem on RC1.
Reproduce code:
---------------
$str = "now";
$timestamp = strtotime($str);
echo "$str == " . date('l dS of F Y h:i:s A', $timestamp) . "<br />\n";
$timestamp = time();
echo "Good is " . date('l dS of F Y h:i:s A', $timestamp) . "<br />\n";
Expected result:
----------------
now == Wednesday 28th of April 2004 10:02:54 PM
Good is Wednesday 28th of April 2004 10:02:54 PM
Actual result:
--------------
now == Wednesday 28th of April 2004 12:00:00 AM
Good is Wednesday 28th of April 2004 10:02:54 PM
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2004-05-18 12:28 UTC] wb at pro-net dot co dot uk
Im seeing the same thing on FreeBSD 5 with PHP5 rc2. code: <?php $strtime = strtotime('now'); printf(' Now: %11s %s Str time: %11s %s ' , time() , date('d M Y @ H:i:s ') , $strtime , date('d M Y @ H:i:s ', $strtime) ); ?> Expected: Now: 1084875653 18 May 2004 @ 11:20:53 Str time: 1084875653 18 May 2004 @ 11:20:53 Actual: Now: 1084875653 18 May 2004 @ 11:20:53 Str time: 1084834800 18 May 2004 @ 00:00:00[2004-05-18 21:53 UTC] derick@php.net
[2004-05-19 12:04 UTC] wb at pro-net dot co dot uk
Hi derick, Yes that is strange, What about adding an optional parameter to the function to set toggle between real now and gnu now? Something like: int strtotime ( string time [, int now] [, bool gnu = false])[2004-05-19 12:10 UTC] wb at pro-net dot co dot uk
[2004-05-19 12:10 UTC] wb at pro-net dot co dot uk
[2004-05-19 12:33 UTC] derick@php.net
[2004-06-15 12:42 UTC] wb at pro-net dot co dot uk
[2004-07-05 11:13 UTC] niels dot hansen at pola dot dk
The functionality is maintained in RC3. I needs the realtime for logging of process. My workaround is to do this: $str=date('d F Y h:i:s A'); $timestamp = strtotime("$str");[2004-07-12 21:50 UTC] patchwork14 at hotmail dot com
[2004-07-15 09:21 UTC] kilnight at hotmail dot com
I've been using strtotime() to calculate relative shifts in time, ie. $real_now = strtotime("2004-07-15 00:16:35"); $exactly_one_day_ago = strtotime("-1 day", $real_now); echo date('Y-m-d H:i:s', $exactly_one_day_ago) Expecting "2004-07-14 00:16:35" but getting: "2004-07-14 00:00:00" I'm sure there's a way around this, but I'm really not that bright... so I had to jump back to php4 for the time being. So I also think that the "now" parameter should be real now, not GNU "now".[2004-09-01 19:57 UTC] tony at marston-home dot demon dot co dot uk
Until this behaviour is fixed so that now() means 'real now' and not 'GNU now' here is a workaround that works in both PHP 4 and PHP 5: $real_now = date('Y-m-d H:i:s'); $dt1 = strtotime("$real_now -1 day"); $dt2 = date('Y-m-d H:i:s', $dt1);[2004-11-15 17:36 UTC] derick@php.net