#php #woocommerce
Вопрос:
Мне нужна именно дата_i18n вместо простой даты, потому что в ней используются переводы. Я показываю дату создания заказа вот так
lt;div class="order-info-item bottom"gt; lt;spangt;lt;?php esc_html_e( 'Order Date', 'woocommerce' )?gt;lt;/spangt; lt;?php if( $date_created = $order-gt;get_date_created() ){ // Display the localized formatted date $formated_date_created = $date_created-gt;date_i18n('j F, Y '); echo $formated_date_created; } ?gt; lt;/divgt;
Для даты доставки, которую я попробовал, это должно быть 21 день
lt;div class="order-info-item bottom"gt; lt;spangt;lt;?php echo get_theme_mod('delivery_date_text')?gt;: lt;/spangt; lt;?php // The orders date $date_created = $order-gt;get_date_created(); $date_created = $date_created-gt;date('j F, Y'); // The order date 5 days $delivery_date = date_i18n( 'j F, Y', strtotime( $order_date . ' 21 days' )); echo $delivery_date;?gt; lt;/divgt;
Я думал, что это работает нормально, но позже я увидел, что он показывает ту же дату доставки даже для более старых «заказов», которые я сделал для теста 3-4 дня назад. Их дата доставки должна быть раньше,чем заказы, которые я создал сегодня. Что не так и как заставить это работать правильно?
Комментарии:
1. ты пытаешься показать
21 12 2021 21 days
или21 12 2021 remainig days
2. что находится
$order_date
во втором фрагменте? Если он не установлен, я бы предположилstrtotime
, что он будет рассматриваться как сегодня3. Я не вижу никаких назначений для
$order_date
переменной в коде. Вероятно, эту строку$date_created = $order-gt;get_date_created();
следует изменить на эту$order_date = $order-gt;get_date_created();
.strtotime
показывать смещение для текущей даты, если вы не указали правильный формат даты. @либертарианец4. Я пытаюсь показать 15 декабря 2021 года в 2-х языковых версиях. Я нашел фрагмент с strtotime здесь, в stackoverflow, в аналогичном вопросе, человеку нужно было указать 5 дней в дате доставки своих заказов. Мне нужно вот так: Дата заказа: 24 ноября 2021 года. Дата доставки: 15 декабря 2021 года/ Я попробую $order_date = $order-gt;get_date_created(); теперь, thx
5. Я думаю, что это должно быть правильно $delivery_date = date_i18n( ‘j F, Y’, strtotime( $date_created . ‘ 21 день’ )); Я действительно сначала не понял, что у меня нет $order_date, моя ошибка