【发布时间】:2020-07-13 09:13:36
【问题描述】:
我想在我的商店中显示预计交货时间。 如果客户在下午 4 点之前下单,他会在第二天收到订单。 但如果订单是在周五或周末,他会在下周一收到订单。
一切正常。但我需要根据我所在国家/地区的某个州添加一些假期,例如圣诞节、新年和当地假期。
我找到了一个解决方案来确定我所在州的固定和灵活(如复活节)假期。
但我不知道如何在当前函数中使用它们。 如果在这些假期之一之前下订单,我需要将未来日期提前几天。
这是当前代码(基于this code):
date_default_timezone_set( 'Europe/Berlin' );
$current_year = date('Y');
$next_year = date('Y', strtotime( $current_year." + 1 year" ));
// Holidays
$neujahr = date('d.m.Y',strtotime(date($next_year.'-01-01')));
$ostern = date('d.m.Y', easter_date($current_year));
$karfreitag = date( "l jS F", strtotime( $ostern." - 2 days" ) );
$ostermontag = date( "l jS F", strtotime( $ostern." + 1 days" ) );
$tagderarbeit = date('d.m.Y',strtotime(date('Y-05-01')));
$himmelfahrt = date( "l jS F", strtotime( $ostern." + 39 days" ) );
$pfingstmontag = date( "l jS F", strtotime( $ostern." + 50 days" ) );
$fronleichnam = date( "l jS F", strtotime( $ostern." + 60 days" ) );
$einheit = date('d.m.Y',strtotime(date('Y-10-03')));
$allerheiligen = date('d.m.Y',strtotime(date('Y-11-01')));
$weihnachten1 = date('d.m.Y',strtotime(date('Y-12-25')));
$weihnachten2 = date('d.m.Y',strtotime(date('Y-12-26')));
// if FRI/SAT/SUN delivery will be MON
if ( date( 'N' ) >= 5 ) {
$del_day = date( "l jS F", strtotime( "next monday" ) );
$order_by = "Monday";
}
// if MON/THU after 4PM delivery will be TOMORROW
elseif ( date( 'H' ) >= 16 ) {
$del_day = date( "l jS F", strtotime( "tomorrow" ) );
$order_by = "tomorrow";
}
// if MON/THU before 4PM delivery will be TODAY
else {
$del_day = date( "l jS F", strtotime( "today" ) );
$order_by = "today";
}
$html = "<br><div class='woocommerce-message' style='clear:both'>Order by 4PM {$order_by} for delivery on {$del_day}</div>";
echo $html;
【问题讨论】:
-
我想你会在这里找到答案stackoverflow.com/a/14907662/3623080
-
谢谢,我找到了一种方法来获得我所在州的假期。但我不知道如何在当前函数中使用它们。如果在这些假期之一之前下订单,我需要将未来日期提前几天。
标签: php date datetime woocommerce strtotime