Solved

strtotime returns -1 for a real date!

Posted on 2006-11-09
1
295 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
1 Comment
 
LVL 33

Accepted Solution

by:
snoyes_jw earned 500 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

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
is this a cms? 8 60
Be edit-table when I click the edit button (turn into inputs boxes) 7 28
Blocking submission of a web-based form 6 20
PHP not parsing ' character 12 38
This article discusses how to create an extensible mechanism for linked drop downs.
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

775 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