如何使用PHP获取用户的pc时间

I am working on an application in which I need to get date & time of local pc of user. Basically php have date and time functions and it returns server time as it is server side scripting language.

I am getting correct time using javascript Date function but when i use strtotime function in php it doesn't work, i need a way to get local time in php.

<script type="text/javascript">

function getDate() 
{ 
        var d = new Date();
    var c_day = d.getDate();
    var c_month = d.getMonth() + 1;
    var c_year = d.getFullYear();
    var c_hour = d.getHours(); 
    var c_min = d.getMinutes(); 
    var t = c_day+"-"+c_month+"-"+c_year+" "+c_hour+":"+c_min;
    return t;
}
if (window.XMLHttpRequest)
{
    xmlhttp=new XMLHttpRequest();
}
else
{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    { 
        alert(xmlhttp.responseText);        
    }
}    
xmlhttp.open("GET","setdate.php?sdate="+encodeURIComponent(getDate()),false);
xmlhttp.send();
</script>

The file 'setdate.php' stores sdate value in the session and i am getting it as an output of ajax.

<?php
$sdate = $_SESSION['sdate'];
$date = date( "d/m/Y", strtotime( $sdate ) );
?>

This works after refreshing the page, but not when the page loads first time.

Any one can help me on this ?

You can not get Client Side Date using php alone.

For client side, you would need Javascript, something like the following should do the trick.

var currentTime = new Date();

You can use AJAX to send this to server.

var currentTime = new Date();
$.ajax({
    url : url,
    data : {date : currentTime}
});

Use javascript's new Date().getTime() to get the time from client. Deliver time to server and then use php's strftime($format, $clientTime) to format the time.

PHP is a server side language, which means that you won't be able to get any of the client's data at all unless they send it to you (via headers, for instance, like the user agent). That said, you could just use Javascript to get the client/browser date and then send it back to PHP (via AJAX, a redirection with this data in the URL...).

By the way, consider adding the timezone to your data. Nobody does usually care about it, and it's the root of all evil. Really.

There's no reliable way to get the users time via the server. You can pass the users time via javascript to php but it is not a secure way of doing things. I'd say the best way is to determine the users timezone and just set date_default_timezone_set() appropriately.

Thanks for your suggestions.

Finally I have solved it by using the java script to get the local timezone and set the cookies using java script, removed the PHP from the flow... :)