如何在java脚本Shopify中创建日期对象的javscript代码+ 11天

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (69)

我想在shopify描述产品中将日期注入html

它会说:

我们将从今天开始发货+ 11天.....

如果它下降到星期六或星期日,它将被移动到星期一,因为我们在星期六或星期日休息

代码现在是这样,但不知道如何在必要时将它移动到第一个星期一

// get the destination within the DOM
var wrapper = document.getElementById('productEta'),

  // get today as a js Date object
  today = new Date(),

  // get the Unix of today (miliseconds) and add desired time (3 weeks)
  etaUnix = today.getTime() + (60 * 60 * 24 * 11 * 1000),

  // convert the new time to date object and then to a human readable string
  etaForHumans = new Date(etaUnix).toDateString();

// set the destination inner html to be what it already is
// plus a space and the human readable string.
wrapper.innerHTML += ' ' + etaForHumans;
<div id="productEta">Product will arrive by: </div>

但是脚本也有问题

提问于
用户回答回答于
// get the destination within the DOM
var wrapper = document.getElementById('productEta'),

  // get today as a js Date object
  today = new Date(),

  // get the Unix of today (miliseconds) and add desired time (3 weeks)
  etaUnix = today.getTime() + (60 * 60 * 24 * 11 * 1000),

  // convert the new time to date object and then to a human readable string
  etaForHumans = new Date(etaUnix);
  var day = etaForHumans.getDay()
  if(day==0)
      etaForHumans.setDate(etaForHumans.getDate() + 1);
  if(day==6)
      etaForHumans.setDate(etaForHumans.getDate() + 2);

// set the destination inner html to be what it already is
// plus a space and the human readable string.
wrapper.innerHTML += ' ' + etaForHumans+ ' ' + day
<div id="productEta">Product will arrive by: </div>
 
用户回答回答于

这实际上并不太难。的日期对象提供了一个功能getDay()返回一周中的一天。它是0到6之间的整数。

你可以这样做:

var days = 4;
etaUnix = new Date(today.getTime() + (60 * 60 * 24 * days * 1000));
console.log(etaUnix.getDay())
switch (etaUnix.getDay()) {
  case 0:
    //sunday
    days++;
    break;
  case 6:
    //saturday
    days += 2;
    break;
}
etaUnix = new Date(today.getTime() + (60 * 60 * 24 * days * 1000));
// convert the new time to date object and then to a human readable string
etaForHumans = new Date(etaUnix).toDateString();

在处理星期六和星期日的交换区中,只需添加一到两天的日期。

顺便说一下 - 你的代码中有一些拼写错误。需要有一个; 在声明的最后不是

扫码关注云+社区

领取腾讯云代金券