【问题标题】:Closest Friday, with time最近的星期五,有时间
【发布时间】:2018-05-19 10:02:20
【问题描述】:

我正在使用一个名为 date.js 的日期 API,我想用它来获取最近的星期五 Date.today().next().friday();。它可以工作,依此类推,但我想指定下周五更改的时间,而不是当前时间,所以我这样做了Date.today().next().friday().set({hour: 19});。但它没有用。有谁知道我如何使用此 API 或纯 js 或任何其他 API 来完成此操作。

澄清

清理一下,我有一个倒计时我想让它倒计时到最近的星期五 19:00,但是我无法得到有工作时间的部分,它只是忽略了时间,星期五它只是看起来对于网络星期五,忽略时钟还没有过去 19:00。

代码:

var d = new Date();
var dagnr = d.getDay();
var time = d.getHours();

var nextf = Date.today().next().tuesday().set({hour: 19});
var countDownDate = new Date(nextf);

//Random mening för Savar NEJ


// Romdom Mening för Svar JA
var jalist = [
      "Själklart är det de"
    , "Vad fasen skulle det annars vara?"
    , "A fram med chipsen för fan!"
    , "A men det är det ju!"
    , "Ajemän fram netflix"
    , 
];
var jarand = Math.floor(Math.random() * jalist.length);


// Update the count down every 1 second
var x = setInterval(function() {

    // Get todays date and time
    var now = new Date().getTime();
    console.log(countDownDate);
    // Find the distance between now an the count down date
    var distance = countDownDate - now;
    // Time calculations for days, hours, minutes and seconds
    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((distance % (1000 * 60)) / 1000);
    
    // Testa vilken dag och vilken tid det är
    console.log(dagnr)
    if ((dagnr === 1 && time >= 15) || (dagnr === 6 | dagnr === 0)) {
        document.getElementById("demo").innerHTML = jalist[jarand];
    } else{
        document.getElementById("demo").innerHTML = "Nej tyvärr är det " + days + "d " + hours + "h " + minutes + "m " + seconds + "s " + "kvar";
    }
    
}, 1000);

【问题讨论】:

  • 什么不工作,对我来说似乎工作正常。
  • 刚试过,这个库对我来说似乎工作得很好。
  • @Axnyff 不起作用的是加时间,我想倒计时到即将到来的星期五或当前星期五的特定时间。
  • @Andreas 添加了所有必要的信息,很抱歉没有这样做,从曾经投反对票的乞讨者那里希望现在可以改变主意。

标签: javascript datejs


【解决方案1】:

您可以使用Date.today().is().tuesday() 检查今天是否是特定日期。只需将其与 ternary operator 一起使用,它应该可以正常工作。

var d = new Date();
var dagnr = d.getDay();
var time = d.getHours();

var nextf =
  Date.today().is().tuesday() ?
  Date.today().set({hour: 19}) :
  Date.next().tuesday().set({hour: 19});

var countDownDate = new Date(nextf);

//Random mening för Savar NEJ


// Romdom Mening för Svar JA
var jalist = [
      "Själklart är det de"
    , "Vad fasen skulle det annars vara?"
    , "A fram med chipsen för fan!"
    , "A men det är det ju!"
    , "Ajemän fram netflix"
    , 
];
var jarand = Math.floor(Math.random() * jalist.length);


// Update the count down every 1 second
var x = setInterval(function() {

    // Get todays date and time
    var now = new Date().getTime();
    // Find the distance between now an the count down date
    var distance = countDownDate - now;
    // Time calculations for days, hours, minutes and seconds
    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((distance % (1000 * 60)) / 1000);

    // Testa vilken dag och vilken tid det är
    if ((dagnr === 1 && time >= 15) || (dagnr === 6 | dagnr === 0)) {
        console.log(jarand);
    } else{
        console.log("Nej tyvärr är det " + days + "d " + hours + "h " + minutes + "m " + seconds + "s " + "kvar");
    }

}, 1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/datejs/1.0/date.min.js"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-29
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2022-07-06
    • 2022-01-02
    • 1970-01-01
    相关资源
    最近更新 更多