Gmdate() - want 1 hr before time

Discussion in 'PHP' started by php_techy, Dec 26, 2009.

  1. #1
    Hi,
    I am using php gmdate().
    Now I am entering all dates in my dbase using gmdate("Y-m-d H:i:s")
    I want 1 hr before datetime.
    So am using like
    gmdate("Y-m-d H:i:s", mktime(gmdate("H")-$hrs, gmdate("i"), gmdate("s"), gmdate("m"), gmdate("d"), gmdate("Y")));
    where $hr = 1
    When I echo current date i,e

    $date = gmdate('Y-m-d H:i:s');
    echo "<br/>current date is $date";

    its
    2009-12-27 03:54:08

    and when echo my code of getting 1 hr before
    $date1 = gmdate("Y-m-d H:i:s", mktime(gmdate("H")-1, gmdate("i"), gmdate("s"), gmdate("m"), gmdate("d"), gmdate("Y")));

    its
    2009-12-26 02:54:08

    difference between these 2 days is 1 day and not 1 hr.
    I want 1 hr before datetime to be
    2009-12-27 02:54:08

    Can please anybody help.
    Thanks in advance
    Regards
     
    php_techy, Dec 26, 2009 IP
  2. xrvel

    xrvel Notable Member

    Messages:
    918
    Likes Received:
    30
    Best Answers:
    2
    Trophy Points:
    225
    #2
    Untested, but worth to try
    
    <?php
    $format = "Y-m-d H:i:s";
    $now = time();
    $adjusted_time = $now - 3600;// 3600 seconds before now
    
    $date = gmdate($format, $adjusted_time);
    
    echo $date;
    ?>
    
    PHP:
     
    xrvel, Dec 26, 2009 IP