Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP和JavaScript的本地日期_Javascript_Php_Date_Local - Fatal编程技术网

使用PHP和JavaScript的本地日期

使用PHP和JavaScript的本地日期,javascript,php,date,local,Javascript,Php,Date,Local,我想使用PHP和JavaScript来回显当前的本地日期(而不是服务器日期) 我的代码如下: <?php $year = '<script type="text/javascript"> var date = new Date(); var year = date.getFullYear(); document.write(year); </script>'; $month = '<script type="text/jav

我想使用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;

?>

它总是返回
01/01/70


我做错了什么?

您的JavaScript代码将在客户端而不是服务器端执行。这意味着JavaScript代码不会在服务器端得到评估,因此字符串
$curDateString
不会具有您认为的值

正常的
echo$curDateString
var\u dump($curDateString)
将在2013年11月3日输出
$curDateString
变量中的代码将在客户端执行,输出将是2013年11月3日的

要了解
$curDateString
真正包含的内容,可以执行以下操作:

header('Content-Type: text/plain');
var_dump($curDateString);
这将输出如下所示:

string(587) "<script type="text/javascript">
    var date = new Date();
    ...
    </script>
字符串(587)”
变量日期=新日期();
...
对于PHP来说,这是随机的胡言乱语。然后在上面的字符串上使用,但它失败了,并将返回
01/01/70
作为输出


为了实现您想要的,您可以制作一个从客户端传递日期值的脚本。然后您可以在PHP脚本中接收此输入,在服务器端处理它并相应地发送回。仅使用
PHP非常简单。

例如,如果您来自伦敦,您会:

date\u default\u timezone\u set('Europe/London');

之后,您将获得以下时间:

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


echo$date

您正在混合使用JavaScript和PHP。PHP将在服务器上解释,JavaScript将在客户端解释,因此不可能以这种方式将JavaScript中的值传递给PHP。您想要客户端或服务器的本地日期吗?由于PHP将在服务器上运行,因此只有在t服务器的日期,而JavaScript只能确定客户端的日期。您不能混合客户端和服务器端代码。您是否检查过变量
$day、$year、$month
,什么都没有。如果我检查$curDateString,它会得到2013年11月1日,因此我认为它会起作用。因此,无法使用p获取客户端日期hp和javascript?