📅  最后修改于: 2023-12-03 15:01:44.287000             🧑  作者: Mango
在 web 开发中,我们常常需要处理日期数据,JavaScript 和 PHP 都具有很好的日期处理功能,但是它们处理日期的方式是不同的。在前端,我们通常使用 JavaScript 来处理日期;而在后端,则通常使用 PHP。本文将介绍 JavaScript 日期转为 PHP 日期的方法。
Moment.js 是一个非常方便的 JavaScript 库,它提供了方便的日期处理功能。我们可以使用这个库来将 JavaScript 日期转为 PHP 日期。
下面是一个例子:
// JavaScript 日期
const jsDate = new Date();
// 使用 Moment.js 将 JavaScript 日期转为 PHP 日期
const phpDate = moment(jsDate).format('YYYY-MM-DD HH:mm:ss');
// 输出 PHP 日期
console.log(phpDate);
上面的代码首先创建了一个 JavaScript 日期对象,然后使用 Moment.js 将它转为了一个格式为 YYYY-MM-DD HH:mm:ss
的字符串。输出结果如下:
2021-05-20 10:21:30
接下来,我们可以把这个字符串传到后端的 PHP 程序中,使用 PHP 的 strtotime
函数将它转为一个时间戳:
<?php
// PHP 日期字符串
$phpDate = '2021-05-20 10:21:30';
// 使用 strtotime 函数将字符串转为时间戳
$timestamp = strtotime($phpDate);
// 输出时间戳
echo $timestamp; // 1621492890
在上面的代码中,我们使用 strtotime
函数将日期字符串转为一个时间戳。输出结果为 1621492890
,这是一个整型时间戳。
另一种将 JavaScript 日期转为 PHP 日期的方法是使用 JavaScript 中的 Date.UTC
方法。这个方法可以将给定的日期对象转为一个 UTC 时间戳。
然后我们将这个时间戳传到 PHP 的 date
函数中,使用所需的日期格式创建一个日期字符串。
下面是一个例子:
// JavaScript 日期
const jsDate = new Date();
// 获取 UTC 日期
const utcDate = Date.UTC(
jsDate.getFullYear(),
jsDate.getMonth(),
jsDate.getDate(),
jsDate.getHours(),
jsDate.getMinutes(),
jsDate.getSeconds()
);
// 使用 PHP date 函数将 UTC 日期转为 PHP 日期字符串
const phpDate = new Date(utcDate).toISOString().replace('T', ' ').substr(0, 19);
// 输出 PHP 日期字符串
console.log(phpDate);
上面的代码首先创建了一个 JavaScript 日期对象,然后使用 Date.UTC
方法将其转为一个 UTC 时间戳。接下来,我们将这个时间戳传给了 new Date
构造函数,创建了一个新的日期对象。最后,使用 toISOString
方法将日期对象转为一个 ISO 日期字符串,使用 replace
和 substr
方法将其转为一个格式为 YYYY-MM-DD HH:mm:ss
的字符串。输出结果如下:
2021-05-20 10:21:30
然后我们可以将这个字符串传到后端的 PHP 程序中,使用 PHP 的 strtotime
函数将它转为一个时间戳:
<?php
// PHP 日期字符串
$phpDate = '2021-05-20 10:21:30';
// 使用 strtotime 函数将字符串转为时间戳
$timestamp = strtotime($phpDate);
// 输出时间戳
echo $timestamp; // 1621492890
与前面的例子相同,我们使用 strtotime
函数将日期字符串转为一个时间戳。输出结果为 1621492890
,这是一个整型时间戳。
本文介绍了两种将 JavaScript 日期转为 PHP 日期的方法,分别是使用 Moment.js 库和使用 Date.UTC 方法。可以根据具体情况选择方法来处理日期数据。