如何查看日期是否晚于8天?

发布于 2024-09-08 11:35:09 字数 481 浏览 4 评论 0原文

我在 mysql 数据库上有一个包含日期的字符串字段(我无法更改它,因为日期格式)(例如:“01-03-2010”),并且我不想创建一个函数来比较该日期,如果今天的日期晚于 8 天,则返回 true,如果日期小于或大于今天的日期,则返回 false...

示例:

01-03-2010 < (08-06-2010(Today) - 8days) - return true
01-06-2010 < (08-06-2010(Today) - 8days) - return false
31-05-2010 < (08-06-2010(Today) - 8days) - return true

我知道我可以转换字符串“01-03-2010” " 在 PHP 上使用 strtotime() 函数添加时间戳,但我不知道如何从今天的时间戳中删除 8 天...:s

提前致谢

i have a string field (and i can't change this because the date format) on mysql database that contains a date (Like: "01-03-2010"), and i wan't to make a function to compare that date and return true if today's date is newer than 8 days, and false if the date is lower or bigger than today's date...

Example:

01-03-2010 < (08-06-2010(Today) - 8days) - return true
01-06-2010 < (08-06-2010(Today) - 8days) - return false
31-05-2010 < (08-06-2010(Today) - 8days) - return true

i know that i can convert the string "01-03-2010" to timestamp with strtotime() function on PHP, but i don'w know how to remove 8 days from today's timestamp... :s

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

倚栏听风 2024-09-15 11:35:09

strtotime(time_str) <代码> strtotime("-8天")

strtotime(time_str) < strtotime("-8 day")

那些过往 2024-09-15 11:35:09

要删除 php 中的 8 天,您可以执行以下操作:

$date_less_8 = time() - (8*24*60*60);

您可以检查 mysql 查询,例如:

DayDate < DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 8 DAY)

to remove 8 days in php you can do :

$date_less_8 = time() - (8*24*60*60);

you can check in mysql query like :

DayDate < DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 8 DAY)
一紙繁鸢 2024-09-15 11:35:09
$newDate = strtotime('31-05-2010'.' -8 days');
echo date('d-F-Y',$newDate);

$eightdaysagoDate = strtotime('-8 days');
echo date('d-F-Y',$eightdaysagoDate);
$newDate = strtotime('31-05-2010'.' -8 days');
echo date('d-F-Y',$newDate);

$eightdaysagoDate = strtotime('-8 days');
echo date('d-F-Y',$eightdaysagoDate);
ぽ尐不点ル 2024-09-15 11:35:09

这仍然可以使用 STR_TO_DATE(string, format) 函数:

SELECT 
  *, STR_TO_DATE(dateColumn, '%d-%m-%y') < CURDATE() - INTERVAL 8 DAY as eightdaysold 
FROM myTable

This could still be handled inside MySQL using the STR_TO_DATE(string, format) function:

SELECT 
  *, STR_TO_DATE(dateColumn, '%d-%m-%y') < CURDATE() - INTERVAL 8 DAY as eightdaysold 
FROM myTable
只是偏爱你 2024-09-15 11:35:09

检查 TO_DAYS mysql的

TO_DAYS(DATE) - TO_DAYS('2010-03-01')) < 8

check TO_DAYS of mysql

TO_DAYS(DATE) - TO_DAYS('2010-03-01')) < 8
小猫一只 2024-09-15 11:35:09

我倾向于在我的应用程序中使用这些定义:

//Time Settings
if(!defined('SECOND'))  define('SECOND',  1);
if(!defined('MINUTE'))  define('MINUTE',  60  * SECOND);
if(!defined('HOUR'))      define('HOUR',    60  * MINUTE);
if(!defined('DAY'))    define('DAY',     24  * HOUR);
if(!defined('WEEK'))      define('WEEK',     7  * DAY);
if(!defined('MONTH'))     define('MONTH',   30  * DAY);
if(!defined('YEAR'))      define('YEAR',    365 * DAY);

然后

if($user_time < (time() - (DAY*8)))
{
   //Whoopsie
}

i tend to use these defines in my applications:

//Time Settings
if(!defined('SECOND'))  define('SECOND',  1);
if(!defined('MINUTE'))  define('MINUTE',  60  * SECOND);
if(!defined('HOUR'))      define('HOUR',    60  * MINUTE);
if(!defined('DAY'))    define('DAY',     24  * HOUR);
if(!defined('WEEK'))      define('WEEK',     7  * DAY);
if(!defined('MONTH'))     define('MONTH',   30  * DAY);
if(!defined('YEAR'))      define('YEAR',    365 * DAY);

Then

if($user_time < (time() - (DAY*8)))
{
   //Whoopsie
}
德意的啸 2024-09-15 11:35:09

在 PHP >= 5.3 中,您可以使用新的闪亮 DateTime 对象 (https: //www.php.net/manual/fr/datetime.modify.php):

$date_from_mysql = new DateTime(/*put your date from mysql here, format yyyy-mm-dd*/);

$date_today = new DateTime();

$date_8_days_ago = new DateTime()
$date_8_days_ago->modify("-8 days");

if(($date_8_days_ago <= $date_from_mysql) && ($date_from_mysql <= $date_today)) {
  /* your date from mysql is between today and 8 days ago */
} else if($date_from_mysql <= $date_8_days_ago) {
  /* your date from mysql is before 8 days ago */
} else {
  /* your date is in the future */
}

With PHP >= 5.3, you can use the new shiny DateTime object (https://www.php.net/manual/fr/datetime.modify.php) :

$date_from_mysql = new DateTime(/*put your date from mysql here, format yyyy-mm-dd*/);

$date_today = new DateTime();

$date_8_days_ago = new DateTime()
$date_8_days_ago->modify("-8 days");

if(($date_8_days_ago <= $date_from_mysql) && ($date_from_mysql <= $date_today)) {
  /* your date from mysql is between today and 8 days ago */
} else if($date_from_mysql <= $date_8_days_ago) {
  /* your date from mysql is before 8 days ago */
} else {
  /* your date is in the future */
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文