2013-11-03 5 views
0

PHP 및 JavaScript를 사용하여 현재 현지 날짜 (서버 날짜가 아님)를 반향시키고 싶습니다. 그것은 항상 01/01/70 반환PHP 및 JavaScript의 현지 날짜

<?php 

$year = '<script type="text/javascript"> 
    var date = new Date(); 
    var year = date.getFullYear(); 
    document.write(year); 
    </script>'; 

$month = '<script type="text/javascript"> 
    var date = new Date(); 
    var month = date.getMonth(); 
    var monthName = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "november", "December"); 
    var curMonth = monthName[month]; 
    document.write(curMonth); 
    </script>'; 

$day='<script type="text/javascript"> 
    var date = new Date(); 
    var day = date.getDate(); 
    document.write(day); 
    </script>'; 

$curDateString = $day . " " . $month . " " . $year; 
$curDate = date('m/d/y', strtotime($curDateString)); 
echo $curDate; 

?> 

을 다음과 같이

내 코드입니다.

내가 뭘 잘못하고 있니?

+1

JavaScript와 PHP가 혼합되어 있습니다. PHP는 서버에서 해석 될 것이고 자바 스크립트는 클라이언트에서 해석 될 것이므로 자바 스크립트에서 PHP로 값을 제공 할 가능성은 없다. 클라이언트 또는 서버의 현지 날짜를 원하십니까? PHP는 서버에서 실행되기 때문에 서버의 날짜 만 가져 오는 것이 가능하지만 JavaScript는 클라이언트의 날짜를 결정할 수 있습니다. –

+0

클라이언트 측 코드와 서버 측 코드를 함께 사용할 수 없습니다. – havana

+0

'$ day, $ year, $ month' 변수를 확인한 적이 없습니까? –

답변

0

JavaScript 코드는 서버 측이 아니라 클라이언트 측에서 실행됩니다. 즉, JavaScript 코드가 서버 측에서 평가되지 않으므로 문자열 $curDateString에는 생각하는 값이 없습니다.

정상 echo $curDateString 또는 var_dump($curDateString) 출력됩니다 3 november 2013 - 기본 Content-Typetext/html되기 때문입니다. $curDateString 변수의 코드는 클라이언트 측에서 실행되고 출력은 3 november 2013이됩니다.

는 다음을 수행 할 수 있습니다, $curDateString 정말에 포함 된 내용을 이해하기 :

header('Content-Type: text/plain'); 
var_dump($curDateString); 

이 출력됩니다 뭔가를 아래와 같이 :

string(587) "<script type="text/javascript"> 
    var date = new Date(); 
    ... 
    </script> 

PHP에,이 임의의 횡설수설이다. 위의 문자열에 strtotime()을 사용하지만 실패하고 01/01/70을 출력으로 반환합니다.

원하는 것을 얻으려면 클라이언트 측에서 날짜 값을 전달하는 AJAX call을 만들 수 있습니다. 그런 다음 PHP 스크립트에서이 입력을 받아서 서버 측에서 처리하고 이에 따라 다시 보낼 수 있습니다.

0

PHP only 사용하여 매우 간단합니다 : 당신이 런던에서 경우

는 예를 들어, 당신은 할 것 :

$date = date('m/d/Y h:i:s a');

: 그 후

date_default_timezone_set('Europe/London');

당신은 시간을 얻을 것

echo $date

관련 문제