【发布时间】:2019-10-28 17:24:51
【问题描述】:
我需要获取用户客户端的日期并将其转换为 PHP 变量。
我知道这有点 hacky,但我能够从用户客户端获取日期到 PHP 中
$today_js = '<script>document.write(new Date());</script>';
echo $today_js;
// Mon Oct 28 2019 12:12:20 GMT-0500 (Central Daylight Time)
所以我希望将字符串转换为在 PHP 中进一步操作,如下所示:
$today_js = '<script>document.write(new Date());</script>';
$userdate = strtotime($today_js);
$today_dt = getDate($userdate);
$year = $today_dt['year'];
$month = $today_dt['mon'];
$day = $today_dt['mday'];
但是我没有得到想要的结果。年份是 1970,月份和日期都是 1。
问题不在于前端编码。我得到以下 PHP 字符串:“Mon Oct 28 2019 12:12:20 GMT-0500 (Central Daylight Time)”只需要我的其余 PHP 代码即可使用它。
我错过了什么?
【问题讨论】:
-
为什么不 ajax 呢?
-
您提供的代码不是“从用户客户端获取日期到 PHP”。这不是它的工作原理。 JS 是客户端,PHP 是服务器端。 PHP 只是将脚本标记作为标记回显,它仍然由客户端执行。
-
我得到了正确日期的 PHP 字符串。如何让它与 strtotime() 一起工作?
-
@santa 我敢打赌你不是。那将是某种黑魔法。那么请告诉我们
echo htmlentities($today_js);的结果。 -
请删除此代码:document.write(new Date());'; $userdate = strtotime($today_js); $today_dt = getDate($userdate); $year = $today_dt['year']; $month = $today_dt['mon']; $day = $today_dt['mday']; echo '$today_js: '.$today_js.' | $userdate: '.$userdate.' | $date: '.$date.' | $year: '.$year.' | $month: '.$month.' | $day: '.$day; ?> 这里:phpfiddle.org/lite
标签: javascript php date