2017-07-24 87 views
0

嗨,我使用js datetime,並將此變量發送給php。現在我想將這個js日期轉換爲php日期時間,但它不工作。這是我想要的。將js日期轉換爲php時間戳

輸入:

星期一2017年7月31日06:00:00 GMT + 0500(巴基斯坦標準時間)

Outut:

2017年7月31日06: 00:00

這是我的代碼:

$dispatchDate = "Mon Jul 31 2017 06:00:00 GMT+0500 (Pakistan Standard Time)"; 
$dispatchDate = substr($dispatchDate, 0, strpos($dispatchDate, '(')); 
echo date('Y-m-d h:i:s', strtotime($dispatchDate)); 

但它不工作。

+0

這看起來像php代碼不是JavaScript,但您的標籤指的是javascript @ – marzelin

+0

@marzelin,js變量通過ajax調用傳遞給php。現在我想將這個字符串轉換爲一個php格式。現在明白了嗎? –

+0

但你想在服務器上使用php做到這一點,對吧? – marzelin

回答

0

工作解決方案,我認爲最簡單:將您的javascript日期時間轉換爲int(timestamp)將時間戳發送到您的PHP並將您的時間戳轉換回PHP日期時間。

date('Y-m-d H:i:s', your timestamp) 
0

你得到時間GMT轉換時間在PST

<?php 
    $dispatchDate = "Mon Jul 31 2017 06:00:00 GMT+0500 (Pakistan Standard Time)"; 
    $dispatchDate = substr($dispatchDate, 0, strpos($dispatchDate, '(')); 
    echo date('Y-m-d h:i:s', strtotime($dispatchDate." +5 hours"));  
    ?> 

現場演示:https://eval.in/836779

0
  1. 獲取實際的時間戳(即,自Unix紀元毫秒)在JS。這是最容易使用的ISO 8601格式的字符串,這個

    let dispatchDate = new Date('2017-07-31T06:00:00+05:00') 
    let ts = dispatchDate.getTime()/1000 // JS timestamps are in ms, PHP in seconds 
        // -> 1501462800 
    
  2. 該值發送給PHP

  3. 解析時間戳到PHP DateTime對象

    $tz = new DateTimeZone('+0500'); 
    $timestampFromJs = $_POST['dispatchDate']; // or however you send it 
    $dispatchDate = new DateTime('@' . $timestampFromJs, $tz); 
    
  4. 使用DateTime#format顯示日期字符串

    echo $dispatchDate->format('Y-m-d h:i:s');