Próbuję wyświetlić tekst "DZIEŃ" Pewnego dnia, a następnie "Dzień B" następny. Mogę to zrobić z funkcją nawet lub dziwną, a następnie skonfiguruj obiekt getDay, ale próbuję to zrobić bez względu na dzień, miesiąc lub rok.

Na przykład, dziś może być "dzień" jutro jest "Dzień B" wtedy następny dzień to "dzień" i tak dalej.

Zacząłem jakiś kod, ale nie rozumiem koncepcji.

<html>

<body>
    <p id="demo"></p>
    <script type="text/javascript">
    myFunction();

    function myFunction() {
        var time = new Date().getDate();
        if (time == 0) {
            greeting = "A Day";
        } else {
            greeting = "B Day";
        }
        document.getElementById("demo").innerHTML = greeting;
    }
    </script>
</body>

</html>
0
Vinny 25 czerwiec 2017, 20:17

4 odpowiedzi

Najlepsza odpowiedź

Możesz zapisywać dzień w ciągu roku, a znalezisko, jeśli dzień jest dziwny, a nawet i odpowiednio wyświetlić ciąg.

myFunction();
function myFunction() {
  var now = new Date();
  var start = new Date(now.getFullYear(), 0, 0);
  var diff = now - start;
  var oneDay = 1000 * 60 * 60 * 24;
  var day = Math.floor(diff / oneDay);
  if (day % 2  == 0) {
      greeting = "A Day";
  } else {
      greeting = "B Day";
  }
  document.getElementById("demo").innerHTML = greeting;
}
<p id="demo"></p>

Źródło: Stackoverflow

1
Hassan Imam 25 czerwiec 2017, 17:55

Podejrzewam, co się dzieje, jest to, że zawsze otrzymujesz Dzień B, poprawnie?

Wywoływanie GetDate w obiekcie daty przywrócenia wartości całkowitej dnia. Sprawdzasz, czy ten dzień miesiąca wynosi 0. Nie rozpoczyna się od offsetu 0 (pierwszy dzień miesiąca wynosi 1). Dlatego nie powinno być przypadku, w którym "dziennie" powinien wrócić.

Nie polecam użycia dnia miesiąca, ponieważ nie sądzę, że byłoby niezawodne. Najlepszą opcją, którą widziałem, robi Dział Modulo (sprawdzanie reszty) i podzielenie przez 2. Jeśli pozostała część ma 0, pokaż A, jeśli pozostała jest 1, pokaż B.

Jednak staje się to problemem z tym, które kończą się w 31 dni. 31/2 ma resztę 1. Pierwszy dzień miesiąca, 1/2, ma również pozostałą część jednego, tworząc dwa "B Dni".

Moja pierwsza myśl ma sprawdzić, czy mógłbyś jakoś zapisać zmienną lokalną, którą zmieniasz lub użyj zmiennej odniesienia różnicy.

0
Matthew Stanley 25 czerwiec 2017, 17:39

Możesz to zrobić w ten sposób:

var aDayBDayArray = ['A Day', 'B Day']

function printDay(aDayBDayArray) {
    console.log(aDayBdayArray[0]);
    aDayBDayArray.reverse();
}                                                                            

Sklep aDayBDayArray w lokalnym składzie cookie lub przeglądarki lub dodaj tę logikę po stronie serwera. Użyj metody printDay() raz dziennie, aby wykonać pracę

Możesz go skonfigurować dalej:

function printDay(aDayBDayArray, swapDays = True) {
    console.log(aDayBdayArray[0]);
    if (swapDays) {
        aDayBDayArray.reverse();
    }
}

Jeśli chcesz więcej dni, w którym możesz to zrobić, możesz to zrobić

  daysArray = ['a day', 'b day', 'c day', ......... 'n day']

Następnie okrągły obróć daysArray w powyższej logiki.

0
stybl 26 czerwiec 2017, 04:10

Przede wszystkim: metoda GetDate () zwraca bieżący dzień miesiąca, na przykład, jeśli dzisiaj jest 25, zmienna "Czas" będzie 25. Więc, jeśli (czas == 0) nie ma sensu, ponieważ będzie nigdy nie bądź 0 dni.

Dla drugiego problemu, który jest taki, że chcesz ustanowić dzień i Dzień B, możesz spróbować zadeklarować licznik, który jest zwiększany, gdy data jest nawet nieparzyste:

var counter =0;
function myFunction() {

  if (counter%2 == 0) {
      greeting = "A Day";
      counter++;
  } else {
      greeting = "B Day";
      counter++;
  }
}
0
25 czerwiec 2017, 18:03