php 获取前5天的日期_php-如何找出5天前的日期?

php-如何找出5天前的日期?

好吧,下面的内容返回5天前的日期:

$days_ago = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 5, date("Y")));

但是,我如何才能找到5天前的任何日期,而不仅仅是今天?

例如:2008-12-02之前5天是多少?

Yeti asked 2020-01-15T16:45:43Z

8个解决方案

107 votes

我认为这样做的可读方式是:

$days_ago = date('Y-m-d', strtotime('-5 days', strtotime('2008-12-02')));

Mike answered 2020-01-15T16:46:02Z

13 votes

找出日期是从今天开始5天前在php

$date = strtotime(date("Y-m-d", strtotime("-5 day")));

找出日期是从今天开始的N天前

$date = strtotime(date("Y-m-d", strtotime("-n day")));

manoj singh answered 2020-01-15T16:46:26Z

11 votes

define('SECONDS_PER_DAY', 86400);

$days_ago = date('Y-m-d', time() - 5 * SECONDS_PER_DAY);

除此之外,您可以在任何日期使用strtotime:

$days_ago = date('Y-m-d', strtotime('January 18, 2034') - 5 * SECONDS_PER_DAY);

或者,如您所用,mktime:

$days_ago = date('Y-m-d', mktime(0, 0, 0, 12, 2, 2008) - 5 * SECONDS_PER_DAY);

好吧,你明白了。 关键是要从时间戳中删除足够的秒数。

zneak answered 2020-01-15T16:46:55Z

8 votes

特定日期前5天:

$date = new DateTime('2008-12-02');

$date->sub(new DateInterval('P5D'));

echo $date->format('Y-m-d') . "\n";

itsazzad answered 2020-01-15T16:47:15Z

4 votes

尝试这个

$date = date("Y-m-d", strtotime("-5 day"));

Matt answered 2020-01-15T16:47:35Z

1 votes

如果您想使用一种不知道算法的方法,或者上一个答案中提到的功能不可用:将日期转换为儒略日数(这是一种计算公元前4713年1月1日起的天数的方法),然后减去 五,然后转换回日历日期(年,月,日)。 两次转换的算法来源是[http://www.hermetic.ch/cal_stud/jdn.htm]的第9节或[http://en.wikipedia.org/wiki/Julian_day]

M. S. B. answered 2020-01-15T16:47:56Z

0 votes

将内置的date_sub和date_add函数用于带日期的数学运算。 (请参见[http://php.net/manual/en/datetime.sub.php)]

与Sazzad的答案类似,但采用PHP的程序风格,

$date = date_create('2008-12-02');

date_sub($date, date_interval_create_from_date_string('5 days'));

echo date_format($date, 'Y-m-d'); //outputs 2008-11-27

CalfordMath answered 2020-01-15T16:48:20Z

0 votes

日期处理的一般算法将日期与儒略日数进行转换。 这是对此类算法的描述,当前已知的最佳算法的描述以及每种算法的数学证明的链接:[http://web.archive.org/web/20140910060704/http://mysite.verizon.net/aesir_research/date/date0.htm]

Peter Baum answered 2020-01-15T16:48:41Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值