假设我在php中有两个变量:
$year
$month
然后我想做另一个变量:
$date
其中:
$date=$year-$month-25
所以,如果我有2012年的$年和7的$月,$日期将是2012-07-25。
实际上,我会将它与MySQL中的一些日期进行比较。$year和$month由用户输入。
有人有解决方案吗?该解决方案要么是如何制作$date,要么是任何可以与mysql中的日期进行比较的东西。谢谢你。^^
您可以通过以下方式创建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
您可以执行以下
$complete_date = $year."-".$month."-25";
为您提供2012-7-25
请阅读"php手册"中的concat php字符串。
它不是
$date = $year-$month-25;
是
$date = $year . '-' . $month . '- 25';
或
$date = $year . "-" . $month . "- 25";
但是对于php字符串来说,简单引号更优化。
解决方案是如何使$date或任何可能长的东西与mysql 中的日期进行比较
这里的关键是使用strtotime
来创建和比较。
MySQL日期可以通过使用strototime:转换为整数
strtotime($mysql_date);
然后你可以得到time()
并将其与两个进行比较:
time()<>strtotime($mysql_date) // then the two dates are not equal.
您可以使用mktime函数
$date = date('Y-m-d',mktime(0,0,0,$month,25,$year));
好吧,我会使用mktime来获取日期的时间戳(http://php.net/manual/de/function.mktime.php),并使用mysql中的命令unix_timestamp(date(yourfield))对它们进行比较。(只有在保存日期时间值而不是纯日期值时,才需要unix_timestamp中的date())
由于mysql日期默认情况下通常采用Y-m-d
格式,因此可以使用
$thedate = date('Y-m-d',mktime(0,0,0,$month,25,$year));
,其中$month
和$year
基于用户输入。当然,您必须使用select/lists让用户以您想要的格式输入。