[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

strtotime returns -1 for a real date!

Posted on 2006-11-09
1
Medium Priority
?
300 Views
Last Modified: 2012-06-21
I have a class (user) which has a property (users_expiration_date)

In this procedure, strtotime always evaluates to -1, and I don't understand why:

                                                      $xUser = new users;
                                                      $xUser->users_id = $_POST['uid'];
                                                      $xUser->load_me();

                                                      if(isset($_POST['password']))
                                                      {
                                                            echo "Password updated.";
                                                            $xUser->users_pass = md5($_POST['password']);
                                                      }
                                                      if(isset($_POST['xdate']))
                                                      {
                                                            $xUser->users_expiry_date = $_POST['xdate'];
                                                      }
                                                      if(isset($_POST['radioAdmin']))
                                                      {
                                                            $xUser->users_is_admin = $_POST['radioAdmin'];
                                                      }

                                                      $xUser->update_me();

Here is the code for update_me():

    function update_me()
    {
        $sql = "UPDATE `users` SET `users_name` = '$this->users_name', `users_pass` = '$this->users_pass', `users_expiry_date` = FROM_UNIXTIME(". strtotime($this->users_expiry_date)."), `users_is_admin` = '$this->users_is_admin', `contacts_id` = '$this->contacts_id' WHERE `users_id` = '$this->users_id' LIMIT 1";
        $this->execute_query($sql);
    }

Here are the POST values:
User Administration  
Array
(
    [username] => jerri
    [xdate] => 12/31/3000
    [radioAdmin] => N
    [Modules] => Array
        (
            [56] => N
            [26] => N
            [42] => N
            [1] => N
            [40] => N
            [19] => N
            [32] => N
            [8] => N
            [12] => Y
            [7] => Y
            [49] => N
            [24] => N
            [29] => N
            [10] => N
            [30] => N
            [25] => N
            [50] => N
            [28] => N
            [43] => N
            [54] => N
            [21] => N
            [34] => N
            [17] => N
            [47] => N
            [41] => N
            [33] => N
            [14] => N
            [20] => N
            [23] => N
            [9] => N
            [46] => N
            [38] => N
            [53] => N
            [11] => N
            [51] => Y
            [31] => N
            [44] => N
            [52] => N
            [15] => N
            [5] => N
            [55] => Y
            [58] => Y
        )

    [Submit] => Update
    [stage] => 3
    [uid] => 49
)

 Here is user after the values have been assigned:

users Object
(
    [users_id] => 49
    [users_name] => jerri
    [users_pass] => 0fc54732b7e737b5ed770a7335baa398
    [users_expiry_date] => 12/31/3000
    [users_is_admin] => N
    [users_unix_timestamp_xdate] => 0
    [contacts_id] => 2934
)

Here's the resulting SQL that is executed for MySQL:

UPDATE `users` SET `users_name` = 'xxxxx', `users_pass` = '0fc54732b7e737b5ed770a7335baa398', `users_expiry_date` = FROM_UNIXTIME(-1), `users_is_admin` = 'N', `contacts_id` = '2934' WHERE `users_id` = '49' LIMIT 1

Does anyone see why this is not evaluating to a unix timestamp?

0
Comment
Question by:DrDamnit
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 33

Accepted Solution

by:
snoyes_jw earned 2000 total points
ID: 17906411
"The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT." - http://www.php.net/strtotime

12/31/3000 falls outside that range.
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Foreword (July, 2015) Since I first wrote this article, years ago, a great many more people have begun using the internet.  They are coming online from every part of the globe, learning, reading, shopping and spending money at an ever-increasing ra…
Things That Drive Us Nuts Have you noticed the use of the reCaptcha feature at EE and other web sites?  It wants you to read and retype something that looks like this. Insanity!  It's not EE's fault - that's just the way reCaptcha works.  But it i…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …
Suggested Courses

649 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question