我的代码中有一个问题,有时我需要在当天添加1天,2天甚至3天。
我正在使用
$today = strtotime('today');
然后根据假期,周末和其他参数,我可能需要像这样添加天数/工作日
$date = strtotime('+2 weekdays', $today);
或
$date = strtotime('+2 days', $today);
但是,这似乎比当前时间增加了24小时,而我理想的时间是一天的第一秒。不幸的是,我无法更改今天的时间戳,因为如果它是当前日期,则它的时间至关重要,但是添加日期时,它必须是新日期的第一秒。
对于我个人对此问题的任何帮助或理解,将不胜感激。
答案 0 :(得分:2)
您可以使用日期/时间格式的字符串作为 strtotime
的输入来指定您想要的时间。如果您将其添加为 strtotime
的第二个参数,则可以获得您想要的时间。
$date = strtotime('+2 weekdays', strtotime(date('Y-m-d 00:00:00', $today));
不过有更简单的选择。你也可以只要求strtotime
午夜。
$date = strtotime('midnight +2 weekdays');
或特定时间。
$date = strtotime('01:23 +2 weekdays');
https://strtotime.co.uk/ 是测试 strtotime
答案 1 :(得分:1)
您可以从结果时间戳值main()
中减去;
示例:
void demo();
P.S。但是最好使用$timestamp % (24*3600)
类。有方法$timestamp = mt_rand(1500000000, 1600000000);
$timestamp -= $timestamp % (24*3600);
echo date('Y-m-d H:i:s', $timestamp);
:
DateTime
答案 2 :(得分:0)
$date = new DateTime();
$date->add(new DateInterval('P"your needed days"D'));
echo $date->format('Y-m-d');
eg:'P2D'
OUTPUT:::2019-01-27
在此“ P”中指定日期的时间段,然后可以添加年(Y),月(M)和天(D),然后添加时间,需要指定时间(T)和小时(H) ,min(i或M)和sec(S)。 请参阅下面的http://php.net/manual/en/dateinterval.format.php