Solved

change gmt+ date

Posted on 2010-11-16
11
309 Views
Last Modified: 2012-05-10
I get date in this form

14 nov. 10
19:17:32 GMT+01:00

want
2010-11-14
0
Comment
Question by:rgb192
[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
  • 4
  • 4
  • 3
11 Comments
 
LVL 110

Expert Comment

by:Ray Paseur
ID: 34149519
date('Y-m-d')
0
 
LVL 14

Expert Comment

by:ali_kayahan
ID: 34149521
echo date("Y-m-d",strtotime("14 nov. 10 19:17:32 GMT+01:00")) ;
0
 
LVL 110

Expert Comment

by:Ray Paseur
ID: 34149529
0
Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

 
LVL 14

Expert Comment

by:ali_kayahan
ID: 34149553
Ray wasnt this such a hard question for you :P
0
 

Author Comment

by:rgb192
ID: 34149775
 $french="14 nov. 10
19:17:32 GMT+01:00";


this works
echo date("Y-m-d",strtotime("14 nov. 10 19:17:32 GMT+01:00")) ;



but this doesnt
echo date("Y-m-d",strtotime($french)) ;


maybe because date is in french


0
 
LVL 14

Expert Comment

by:ali_kayahan
ID: 34149862
can you please try by adding this line at the top ;

setlocale(LC_ALL,"fr_CA");
0
 

Author Comment

by:rgb192
ID: 34149883
output
1970-01-01


<?php
setlocale(LC_ALL,"fr_CA");
  $french="14 nov. 10
19:17:32 GMT+01:00";
//echo date("Y-m-d",strtotime("14 nov. 10 19:17:32 GMT+01:00")) ;
echo date("Y-m-d",strtotime($french)) ;
?>

Open in new window

0
 
LVL 110

Expert Comment

by:Ray Paseur
ID: 34150197
Works OK for me without any locale setting.  PHP 5.3.3 on Linux
http://www.laprbass.com/RAY_strtotime.php?s=14+nov.+10+19%3A17%3A32+GMT%2B01%3A00

Outputs:
BINGO
14 nov. 10 19:17:32 GMT+01:00 WORKS WITH strtotime()
THE INTEGER TIMESTAMP VALUE IS 1,289,758,652
THE ISO8601 DATETIME STRING IS 2010-11-14T12:17:32-06:00
THE TEXTUAL DATE IS Sunday 14th of November 2010 12:17:32 PM

Here is my test script.
<?php // RAY_strtotime.php
error_reporting(E_ALL);

// PHP 5.1+  SEE http://us3.php.net/manual/en/function.date-default-timezone-set.php
date_default_timezone_set('America/Chicago');

// IF WE HAVE INPUT FROM THE URL QUERY STRING
if (!empty($_GET["s"]))
{
    // USE strtotime() FUNCTION TO MAKE A TIMESTAMP
    // MAN PAGE: http://us.php.net/manual/en/function.strtotime.php
    $unix_timestamp = strtotime($_GET["s"]);

    // TEST FOR SUCCESS OR FAILURE
    if ($unix_timestamp === FALSE)
    {
        echo "<strong>HONK!</strong><br /> <u>{$_GET["s"]}</u> NOT USEFUL WITH strtotime() <br/><br/><br/><br/>";
    }

    // ON SUCCESS, PRINT THE RESULTS
    else
    {
        echo "<strong>BINGO</strong><br /> <strong><u>{$_GET["s"]}</u></strong> WORKS WITH strtotime() <br/>";
        echo "THE INTEGER TIMESTAMP VALUE IS ";
        echo number_format($unix_timestamp) . "<br />";

        // FORMAT ISO AND HUMAN-READABLE DATES
        // MAN PAGE: http://us.php.net/manual/en/function.date.php
        $y = date('c', $unix_timestamp);
        echo "THE ISO8601 DATETIME STRING IS $y<br />";
        $z = date('l dS \o\f F Y g:i:s A', $unix_timestamp);
        echo "THE TEXTUAL DATE IS $z<br />";
    }

    echo PHP_EOL;
} // END OF PROCESSING INPUT
// PUT UP THE FORM
?>
<html>
<head>
<title>TEST THE PHP FUNCTION strtotime()</title>
</head>
<body onload="document.f.s.focus()">
<form name="f" method="get">
<br />TO TEST A STRING FOR A VALID DATE/TIME, TYPE IT HERE:<input name="s" />
<input type="submit" value="GO" />
</form>

TRY TESTING SOME OF THESE STRINGS (CLICK THE LINK, OR COPY AND PASTE INTO THE FORM):


<?php function t($str)
{
    echo "<br/><a href=\"http://www.laprbass.com/RAY_strtotime.php?s=" . urlencode($str) . "\">$str</a>\n";
}
t('- 3 hours');
t('tomorrow');
t('tomorrow 3:15:25 pm');
t('March 15, 1986');
t('yesterday');
t('yesterday + 1 week');
t('next year');
t('now');
t('now + 627 hours 15 minutes');
t('tomorrow midnight');
t('tomorrow 1:35pm');
t('last Tuesday');
t('three days ago');
t('- 3 days');
t('A VALID TIME');
t('A BOGUS TIME');
t('A NON-BOGUS TIME');
t('s time');
t('t time');
t('u time');
t("Avogadro's Constant");
t("Wednesday November, 10 2010 1:01pm");
t("Wednesday, November 10 2010 1:01pm");
?>
<br/>Note: Your local time may vary.  This server is in US Central Time
</body>
</html>

Open in new window

0
 
LVL 110

Accepted Solution

by:
Ray Paseur earned 500 total points
ID: 34150263
Looks like the linefeed in the middle of the date causes trouble.  Copy / paste into an input control eliminates this character.  So it makes sense to eliminate extraneous whitespace in the date/time strings.  Line 16 of the code snippet does the trick.
<?php
error_reporting(E_ALL);

// PHP 5.1+  SEE http://us3.php.net/manual/en/function.date-default-timezone-set.php
date_default_timezone_set('America/Chicago');

// setlocale(LC_ALL,"fr_CA");

  $french="14 nov. 10
19:17:32 GMT+01:00";

echo date("Y-m-d",strtotime("14 nov. 10 19:17:32 GMT+01:00")) ;
echo date("Y-m-d",strtotime($french)) ;

// CORRECT FOR LINEFEEDS WITH PREG_REPLACE EXAMPLE 5
$french = preg_replace('/\s\s+/m', ' ', $french);
echo date("Y-m-d",strtotime($french));

Open in new window

0
 
LVL 14

Expert Comment

by:ali_kayahan
ID: 34150411
Your string also works fine for me without setlocale
0
 

Author Closing Comment

by:rgb192
ID: 34150688
thanks
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
&& operators not performing required logic 8 40
How can I send attachment with mail 5 24
php non-object 7 27
php time 12 25
Part of the Global Positioning System A geocode (https://developers.google.com/maps/documentation/geocoding/) is the major subset of a GPS coordinate (http://en.wikipedia.org/wiki/Global_Positioning_System), the other parts being the altitude and t…
This article discusses four methods for overlaying images in a container on a web page
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 look for a specific file type in a local or remote server directory using PHP.

734 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