每2周显示星期五的日期

时间:2020-07-16 16:01:57

标签: php wordpress date woocommerce dateinterval

我有带有特殊提取日期的woocommerce产品。接送日是星期五。例如,某产品的取货时间为两周,那么我要显示该产品的日期应为:

  • 2020年7月31日
  • 14-08-2020
  • 2020年8月28日 (每两周一次)

我下面的代码是:

  • 2020年7月31日
  • 2020年8月8日错误 (这不是每两周一次,因为从下周五开始计算)

我在这里计算日期:

function lwb_pickup_days( $att ) {
    
    switch ( $att ) {
        case "weekly":
            $date = date_i18n( 'l, d.m.Y', strtotime("next Friday"));
            return $date;
            break;
        case "2 weeks":
            $date = date_i18n( 'l, d.m.Y', strtotime("next Friday + 2weeks"));
            return $date;
            break;
        case "3 weeks":
            $date = date_i18n( 'l, d.m.Y', strtotime("next Friday + 3weeks"));
            return $date;
            break;
        case "4 weeks":
            $date = date_i18n( 'l, d.m.Y', strtotime("next Friday + 4weeks"));
            return $date;
            break;      
    }       
}

这就是我使用上述功能获取每种产品的提货日期的方式!

// Show Attributes on Product Archive & Single Product
function lwb_show_attribute_on_product(){
    global $product;
    
    $taxonomy = 'pa_lieferfrequenz';
    $value = $product->get_attribute( $taxonomy );
    
    // calculate the pickup date
    $date = lwb_pickup_days( $value );

    if ( $value ) {
        $label = get_taxonomy( $taxonomy )->labels->singular_name;
        $name = 'Abholtag';
        echo '<div class="lwb-product-meta">';
            echo '<p class="lwb-' . strtolower( $label ) .'">' . $name . ': ' . $date . '</p>';
        echo '</div>';
    }
}
add_action( 'woocommerce_after_shop_loop_item_title', 'lwb_show_attribute_on_product', 45 );
add_action( 'woocommerce_product_meta_start', 'lwb_show_attribute_on_product', 45 );

感谢您的投入...

1 个答案:

答案 0 :(得分:0)

你可以试试吗?

// this Friday.
date('Y-m-d', strtotime('friday this week'))

// in 2 weeks
date('Y-m-d', strtotime('friday this week') + 7 * 2 * 86400)

// in 4 weeks
date('Y-m-d', strtotime('friday this week') + 7 * 4 * 86400)

// etc