根据日期和时间显示日期
Show a date depending on day and time
我有这个脚本回显即将到来的星期四,除非它是星期三,因为它会显示一周后的星期四。这很好用。
但我想在周三下午 5 点(17:00 GMT+1 / CEST)添加截止时间。因此,在下午 5 点之前,它仍会在下周四(后天)显示,但在下午 5 点之后,它应该在下周周四显示。我似乎无法弄清楚如何添加它,希望有人知道解决方案!
<?
$date = new DateTime();
if(date('D') == 'Tue' || date('D') == 'Wed') {
$date->modify('thursday next week');
} else {
$date->modify('next thursday');
}
$delivery_date = $date->format('d-m-Y');
?>
<?php echo $delivery_date; ?>
给你的一些反馈:
- 你的问题是“除非是星期三”,但你的代码说除非是星期二或星期三
- 您使用
DateTime()
创建了 $date
,这很好,但是您没有在 if
语句中使用它。 if
语句中的每个 date('D')
调用都使用单独的时间。时间将非常接近,但您应该使用检查日期时创建的 $date
,例如$date->format('D') === 'Wed'
- 您的代码将根据服务器的时区运行。如果您需要处理其他时区,则需要通过将
DateTimeZone
对象传递给 DateTime
构造函数来指定,例如$date = new DateTime( 'now', $dateTimeZoneObj );
,或在您的代码前手动设置时区。
解决您的问题的一种方法是将下午 5 点的支票添加到您的每周支票中,例如:
if( $date->format('D') === 'Wed' && (int)$date->format('G') >= 17 )
我有这个脚本回显即将到来的星期四,除非它是星期三,因为它会显示一周后的星期四。这很好用。
但我想在周三下午 5 点(17:00 GMT+1 / CEST)添加截止时间。因此,在下午 5 点之前,它仍会在下周四(后天)显示,但在下午 5 点之后,它应该在下周周四显示。我似乎无法弄清楚如何添加它,希望有人知道解决方案!
<?
$date = new DateTime();
if(date('D') == 'Tue' || date('D') == 'Wed') {
$date->modify('thursday next week');
} else {
$date->modify('next thursday');
}
$delivery_date = $date->format('d-m-Y');
?>
<?php echo $delivery_date; ?>
给你的一些反馈:
- 你的问题是“除非是星期三”,但你的代码说除非是星期二或星期三
- 您使用
DateTime()
创建了$date
,这很好,但是您没有在if
语句中使用它。if
语句中的每个date('D')
调用都使用单独的时间。时间将非常接近,但您应该使用检查日期时创建的$date
,例如$date->format('D') === 'Wed'
- 您的代码将根据服务器的时区运行。如果您需要处理其他时区,则需要通过将
DateTimeZone
对象传递给DateTime
构造函数来指定,例如$date = new DateTime( 'now', $dateTimeZoneObj );
,或在您的代码前手动设置时区。
解决您的问题的一种方法是将下午 5 点的支票添加到您的每周支票中,例如:
if( $date->format('D') === 'Wed' && (int)$date->format('G') >= 17 )