在 Shopify 中将日期添加到不包括周末的日期
Adding days to a date excluding weekends in Shopify
我正在尝试编写一些代码来估计 Shopify 中的发货日期。我一直在学习 liquid,但在 Ruby 中编写一些逻辑时遇到问题。我不确定 Shopify 模板是否在 Rails.
上使用 Ruby 或 Ruby
我想获取今天的日期并根据输入变量添加 3 天或 5 天,周末除外。这是我在 PHP 中的做法:
$orderDate = date('Y-m-d');
$personalized = true;
$orderDays = ($personalized ? 4 : 2);
(date('H') > 12 ? $orderDays++ : $false);
$d = new DateTime( $orderDate );
$t = $d->getTimestamp();
// loop for X days
for($i=0; $i<$orderDays; $i++){
// add 1 day to timestamp
$addDay = 86400;
// get what day it is next day
$nextDay = date('w', ($t+$addDay));
// if it's Saturday or Sunday get $i-1
if($nextDay == 0 || $nextDay == 6) {
$i--;
}
// modify timestamp, add 1 day
$t = $t+$addDay;
}
$d->setTimestamp($t);
echo $d->format( 'Y-m-d' ). "\n";
为 Shopify liquid 写这个的最佳方式是什么?
在 Liquid 中使用 date
过滤器。
date format you are using in Ruby相当于:
{{ "now" | date: "%Y, %m, %-d" }}
一天是86400秒。从现在开始添加 3 天并设置格式的示例:
{% assign days = 3 | times: 86400 %}
{{ "now" | date: "%s" | plus: days | date: "%Y, %m, %-d" }}
注意:您需要先将 date: "%s"
过滤器应用于 "now",以便 Liquid 了解您使用的是当前时间戳,而不是字符串 "now".
检查是否在周末下订单的方法是:
{% assign wday = order.created_at | date: "%a" %}
{% if wday == 'Sat' or wday == 'Sun' %}
el Weekendo
{% endif %}
我正在尝试编写一些代码来估计 Shopify 中的发货日期。我一直在学习 liquid,但在 Ruby 中编写一些逻辑时遇到问题。我不确定 Shopify 模板是否在 Rails.
上使用 Ruby 或 Ruby我想获取今天的日期并根据输入变量添加 3 天或 5 天,周末除外。这是我在 PHP 中的做法:
$orderDate = date('Y-m-d');
$personalized = true;
$orderDays = ($personalized ? 4 : 2);
(date('H') > 12 ? $orderDays++ : $false);
$d = new DateTime( $orderDate );
$t = $d->getTimestamp();
// loop for X days
for($i=0; $i<$orderDays; $i++){
// add 1 day to timestamp
$addDay = 86400;
// get what day it is next day
$nextDay = date('w', ($t+$addDay));
// if it's Saturday or Sunday get $i-1
if($nextDay == 0 || $nextDay == 6) {
$i--;
}
// modify timestamp, add 1 day
$t = $t+$addDay;
}
$d->setTimestamp($t);
echo $d->format( 'Y-m-d' ). "\n";
为 Shopify liquid 写这个的最佳方式是什么?
在 Liquid 中使用 date
过滤器。
date format you are using in Ruby相当于:
{{ "now" | date: "%Y, %m, %-d" }}
一天是86400秒。从现在开始添加 3 天并设置格式的示例:
{% assign days = 3 | times: 86400 %}
{{ "now" | date: "%s" | plus: days | date: "%Y, %m, %-d" }}
注意:您需要先将 date: "%s"
过滤器应用于 "now",以便 Liquid 了解您使用的是当前时间戳,而不是字符串 "now".
检查是否在周末下订单的方法是:
{% assign wday = order.created_at | date: "%a" %}
{% if wday == 'Sat' or wday == 'Sun' %}
el Weekendo
{% endif %}