0

假设我在 php 中有两个变量:

$year
$month

然后我想制作另一个变量:

$date

哪个:

$date=$year-$month-25

因此,如果我在 $year 中有 2012 年,在 $month 中有 7 年,则 $date 将是 2012-07-25。

实际上,我会将它与 MySQL 中的某个日期进行比较。$year 和 $month 由用户输入。

有人有解决方案吗?解决方案是如何制作 $date 或任何可以与 mysql 中的日期进行比较的东西。之前谢谢。^^

4

7 回答 7

2

您可以通过以下方式制作 unix 时间戳:

$myDate = mktime(0, 0, 0, $month, 25, $year);

这是一个非常有用的东西,因为您可以通过以下方式将其格式化为各种漂亮的东西:

echo date("Y-m-d", $myDate);
// Prints something like: 2012-07-25

或者

echo date("l", $myDate);
// Prints something like: Monday

或者

date('l jS \of F Y h:i:s A', $myDate);
// Prints something like: Monday 8th of August 2005 03:12:46 PM
于 2012-07-31T09:28:33.497 回答
1

您可以执行以下操作

$complete_date = $year."-".$month."-25";

这给了你 2012-7-25

于 2012-07-31T09:24:15.587 回答
1

请阅读“ php 手册”以连接您的 PHP 字符串。

它不是

$date = $year-$month-25;

这是

$date = $year . '-' . $month . '- 25';

或者

$date = $year . "-" . $month . "- 25";

但简单的引用更适合 php 字符串。

于 2012-07-31T09:26:19.643 回答
1

解决方案是如何制作 $date 或任何东西,只要它可以与 mysql 中的日期进行比较

这里的关键是使用strtotime创建和比较。

MySQL 日期可以通过使用 strototime 转换为整数:

strtotime($mysql_date);

然后你可以得到time()并比较两个:

time()<>strtotime($mysql_date) // then the two dates are not equal.
于 2012-07-31T09:27:25.743 回答
1

您可以使用 mktime 功能

$date = date('Y-m-d',mktime(0,0,0,$month,25,$year));
于 2012-07-31T09:27:55.663 回答
1

好吧,我会使用 mktime 来获取日期的时间戳(http://php.net/manual/de/function.mktime.php)并在 mysql 中使用命令 unix_timestamp(date(yourfield)) 来比较它们。(仅当您保存日期时间值而不是纯日期值时才需要带有 unix_timestamp 的 date())

于 2012-07-31T09:28:15.803 回答
1

由于默认情况下mysql日期通常采用这种格式Y-m-d,因此您可以使用

$thedate = date('Y-m-d',mktime(0,0,0,$month,25,$year));
其中$month$year基于用户输入。当然,您必须使用选择/列表让用户以您想要的格式输入它。

于 2012-07-31T09:34:46.737 回答