【发布时间】:2016-03-12 20:29:33
【问题描述】:
我正在使用日期选择器来选择一个日期并将该日期传递给 PHP 以显示某个日期的图像 (from here)。奇怪的是,这在 Firefox 中运行良好,但在 Chrome、Internet Explorer、Edge 和 Opera 中却不行。
日期选择器页面上的Javascript
$("#datepicker").datepicker({
onSelect: function() {
var date = $('#datepicker').datepicker("getDate");
$.ajax({
url: "processdate.php",
type: "POST",
async: true,
data: {
selected_date: date
},
success: function(resp) {
if (resp === "true") {
window.location.href = "test.php";
} else {
alert("nope :-(");
}
}
});
};
这被传递给processdate.php,我从那里进一步使用它:
<?php
if(!isset($_SESSION)){
session_start();
}
if(isset($_POST["selected_date"])){
$_SESSION["date"] = $_POST["selected_date"];
echo "true";
} else {
echo "false";
}
?>
我创建了test.php 来回显数据并查看失败的原因:
<?php
if(!isset($_SESSION)){
session_start();
}
$datePicker = $_SESSION["date"];
$datePHP = strtotime($datePicker);
$date = date('d-m-Y', $datePHP );
echo $datePicker;
echo "<br>";
echo $datePHP;
echo "<br>";
echo $date;
?>
在 Firefox 中输出 Test.php,工作原理以及应该如何:
2016 年 3 月 2 日星期三 00:00:00 GMT+0100
1456873200
02-03-2016
在 Chrome 中输出 Test.php,不工作,第二行(strtotime)丢失
2016 年 3 月 2 日星期三 00:00:00 GMT+0100(西欧(标准))
01-01-1970
如您所见,Chrome 似乎没有回显strtotime。 IE/Edge/Opera 也是如此。这让我很困惑,这怎么可能?我尝试设置 getDate 格式,但似乎不起作用?
【问题讨论】:
-
删除@抑制可能发生的任何错误。
-
我做到了,没有错误。出于某种原因,Chrome 似乎对
strtotime没有任何作用 -
Chrome 没有对 strtotime() 做任何事情,strtotime() 是一个 php 函数,在服务器上执行。
-
@NeilMasters 我知道,但在 Firefox 中它会生成一些东西,而在 Chrome 中则不会。那怎么解释呢? POST 工作正常,因为第一行日期是正确的。第二行未在 Chrome 中显示,因此第三行 (01-01-1970) 失败。这让我很困惑为什么。
标签: php jquery datepicker