2012-05-31 122 views
15

我有一個輸出數據數組的PHP腳本。然後使用json_encode()函數將其轉換爲JSON將PHP日期轉換爲javascript日期格式

我的問題是我有我的數組中的日期,它不是在正確的JavaScript格式。我如何在PHP中對其進行轉換?

$newticket['ThreadID'] = $addticket; 
$newticket['Subject'] = $subject; 
//$newticket['DateCreated'] = date('d-m-Y G:H'); 

代替上述FO rthe日期,我需要)JavaScript函數的equivilant

新的日期(

當我輸出上面,我得到了下面的「週五的Jun 01 2012 11:08:48 GMT + 0100(GMT Daylight Time)「但是,如果我將我的PHP日期格式設置爲相同,則javascript會拒絕它。困惑...

任何人都可以幫忙嗎?

回答

24

你或許應該只使用時間戳

$newticket['DateCreated'] = strtotime('now'); 

然後將其轉換爲JavaScript日期

// make sure to convert from unix timestamp 
var now = new Date(dateFromPHP * 1000); 
+0

javascript的日期格式是:Fri Jun 01 2012 11:08:48 GMT + 0100(GMT Daylight Time)不是時間戳 – LeeTee

+1

不,有多種實例化日期對象的方法,包括時間戳:http:// www .w3schools.com/jsref/jsref_obj_date.asp –

+3

@LeeTee最簡單和最便攜的格式是一個時間戳,然後可以轉換爲任何你想要的。 – jeremyharris

0
$newticket['DateCreated'] = date('d-m-Y G:H', strtotime($phpDateVariable)); 
+0

$ phpDateVariable已經處於上述狀態。我需要把JavaScript格式這是週五2012年6月11日11時08分48秒GMT + 0100(格林威治標準時間日光時間) – LeeTee

+0

你只是問如何格式化日期在PHP?請查看文檔中的格式選項:http://us.php.net/manual/en/function.date。php –

0

如果你想與您的時間戳更精確,你應該使用microtime中()而不是現在()。

這就給了你:

echo round(microtime(TRUE)*1000); 

在PHP一個milisecond,JavaScript的類似時間戳。

5

這很簡單。

PHP代碼:

$formatted_date = $newticket['DateCreated'] = date('Y/m/d H:i:s'); 

Javascript代碼:

var javascript_date = new Date("<?php echo $formatted_date; ?>"); 
2

其實很簡單,我用這個:

new Date("<?= date('Y/m/d H:i:s'); ?>"); 
1

javascript日期類支持ISO 8601的日期格式,以便我會推薦:

<?php 
     date('c', $yourDateTime); 
     // or for objects 
     $dateTimeObject->format('c'); 
?> 

文檔說: 格式字符 'C' 是ISO 8601的日期(在PHP 5中添加)
例如:2004-02-12T15:19:21 + 00:00

的詳細資料: http://php.net/manual/en/function.date.php