2014-01-23 90 views
-4

你好朋友,這我的我的PHP代碼。PHP時間戳轉換爲JavaScript?

<?php 
    $date3=date_default_timezone_set('Europe/Paris'); 
    echo $abc3=date('Y-m-d h:i:s'); 
    $t3= strtotime($abc3) * 1000; 
?> 

打印日期爲2014-01-23 08:43:45

朋友這是我的JavaScript代碼

<script> 
var t3=<?php echo $t3; ?>; 
function update_clock3(){ 

var now = new Date(Number(t3)); 

var hours = now.getHours(); 
var minutes = now.getMinutes(); 
var seconds = now.getSeconds(); 

alert(hours +":"+ minutes + ":" + seconds); 

} 
</script> 

的JavaScript代碼是打印日期是錯誤的。

javascript output is under。

十三時13分45秒

請幫助我哪裏做的錯誤。

謝謝。

下面

回答

2

你只需要客戶端時間轉換中的日期字符串到服務器時區。使用Date.prototype.getUTCHours等方法。你也可以使用Date.prototype.getTimezoneOffset()檢查時差,如果一天更換通知中使用,例如:

<script> 

    var t3=<?php echo $t3; ?>; 
    function update_clock3(){ 

     var now = new Date(Number(t3)); 
     var year = now.getUTCFullYear(); 
     var month = now.getUTCMonth(); 
     var day = now.getUTCDate(); 
     var hours = now.getUTCHours(); 
     var minutes = now.getUTCMinutes(); 
     var seconds = now.getUTCSeconds(); 
     //local zone - UTC zone, so +1 UTC will be -60 
     var offset = now.getTimezoneOffset()/60; 
     //convert hours from UTC time zone to local 
     var minutesOffset = offset % 1; 
     var localHours = hours - Math.floor(offset); 
     var localMinutes = minutes - minutesOffset * 60; 
     var localDate = new Date(year,month, day, localHours, localMinutes, seconds); 

     //day can be change by adding offset 
     if (localDate.getDate() !== day) { 
      alert("You have another day"); 
     } 

     alert("UTC time:" + hours +":"+ minutes + ":" + seconds); 

    } 
</script> 
+0

嘿皮納請你可以在這個時區tyr。 '亞洲/ Hong_Kong' –

+0

我在這個timzone上有很長的不同。 –

+0

我編輯我的答案,添加時區檢查並刪除歐洲/巴黎硬編碼。 – Pinal

-1

用途: -

<script> 
var t3 = '<?php echo $t3; ?>'; 

function update_clock3(){ 

    var now = new Date(t3); 

    var hours = now.getHours(); 
    var minutes = now.getMinutes(); 
    var seconds = now.getSeconds(); 

    alert(hours +":"+ minutes + ":" + seconds); 

} 
</script> 

編輯: -

<?php 
    $date3=date_default_timezone_set('Europe/Paris'); 
    echo $abc3=date('Y-m-d h:i:s'); 
    $t3= strtotime($abc3) * 1000; 
?> 

<script> 
var t3 = '<?php echo $t3; ?>'; 
alert(t3); 

</script> 
+0

沒有工作,那麼返回相同的輸出我提到。 –

+0

@renishkhunt你想要2014-01-23 08:43:45從你的javascript輸出嗎? – ripa

+0

沒有親愛的我想要像1390463898000轉換時間戳。 –

-1

直接傳遞日期功能

http://www.w3schools.com/jsref/jsref_obj_date.asp 
<!DOCTYPE html> 
<html> 
<body> 

<p id="demo">Click the button to display the hour of the time right now.</p> 

<button onclick=" update_clock3()">Try it</button> 

<script> 

var t3='2014-01-23 08:43:45'; 
function update_clock3(){ 

var now = new Date(t3); 

var hours = now.getHours(); 
var minutes = now.getMinutes(); 
var seconds = now.getSeconds(); 

alert(hours +":"+ minutes + ":" + seconds); 

} 

</script> 

</body> 
</html> 
+0

不工作,它會返回與我提到的相同的輸出。 –

+0

檢查這個例子 – Sundar

+0

在t3不是一個字符串日期是一個時間戳,如1390463898000 –