Ich habe einige Bilder in einem Feature-Bild-Schieberegler. Ich muss diese nach Datum programmierbar machen, damit ich nicht online gehen muss, um sie am Wochenende oder so weiter zu ändern. Ich möchte ein Start- und ein Enddatum in das Objekt einfügen. Wie verwendet man ein Datum in einem Objekt (nicht als Zeichenfolge)?

var bannerOne = {dateStart:"08/12/2015", dateEnd:"08/13/2015", banner:"<li><a href=\"https://unsplash.it/200/300\"><img src=\"https://unsplash.it/500/300\" /></a></li>"};
var bannerTwo = {dateStart:"08/14/2015", dateEnd:"08/15/2015", banner:"<li><a href=\"https://unsplash.it/200/300\"><img src=\"https://unsplash.it/600/300\" /></a></li>"};
var bannerThree = {dateStart:"08/12/2015", dateEnd:"08/13/2015", banner:"<li><a href=\"https://unsplash.it/200/300\"><img src=\"https://unsplash.it/550/300\" /></a></li>"};

Ich möchte das aktuelle Datum vergleichen und sehen, ob die Daten im Objekt das aktuelle Datum enthalten, und wenn ja, dieses Bild anzeigen.

Ich bin noch neu in Javascript.

Derzeit verwende ich diesen Code:

   <ul>   <script type="text/javascript">

  var banner = new Array();
banner[0] = "<li>First Statement</li>";
banner[1] = "<li>Second Statement</li>"; 
banner[2] = "<li>Third Statement</li>"; 
banner[3] = "<li>Fourth Statement</li>"; 
banner[4] = "<li>Fifth Statement</li>";


var d = new Date();
if (d.getDate() == 12)
{document.write(banner [0], banner [1], banner[2])}

/*Use this to program to be live during two dates !!!!LEAVE(-1)!!!!*/ else if (d.getMonth() == 8-1 && d.getDate() >= 10 && d.getDate() < 12) {document.write(banner [4], banner [1])}

else
{
document.write(banner [1], banner[2], banner [3], banner[4], banner [0]) }
</script>    </ul>
0
MPMullally 13 Aug. 2015 im 00:14

3 Antworten

Beste Antwort

Sie sollten sich wirklich mit der Verwendung von http://momentjs.com/ befassen. Sie können isBetween, isBefore, isAfter ... its verwenden sehr flexibel.

0
Wojciech Wieroński 12 Aug. 2015 im 21:18
<!DOCTYPE html>
<html>
    <body>
        <script type="text/javascript">

            var bannerOne = {dateStart:"08/12/2015", dateEnd:"08/13/2015", banner:"<li><a href=\"https://unsplash.it/200/300\"><img src=\"https://unsplash.it/500/300\" /></a></li>"};
            var bannerTwo = {dateStart:"08/14/2015", dateEnd:"08/15/2015", banner:"<li><a href=\"https://unsplash.it/200/300\"><img src=\"https://unsplash.it/600/300\" /></a></li>"};
            var bannerThree = {dateStart:"08/12/2015", dateEnd:"08/13/2015", banner:"<li><a href=\"https://unsplash.it/200/300\"><img src=\"https://unsplash.it/550/300\" /></a></li>"};

            //Todays Date
            var currentDate = new Date();

            //setting minutes, hours and seconds of current date to 0
            currentDate.setMinutes(0);
            currentDate.setHours(0);
            currentDate.setSeconds(0);

            var start=new Date (bannerOne.dateStart);
            var end=new Date (bannerOne.dateEnd);

            //comparing the startdate with current date by substraction, if the subtraction result is less than 0(negative value) then the date is still valid and similarly checking for end date.
            if (start - currentDate < 0 && end - currentDate > 0){
            document.write(bannerOne.banner);
            }
            //Banner Two
            start=new Date (bannerTwo.dateStart);
            end=new Date (bannerTwo.dateEnd);

            if (start - currentDate < 0 && end - currentDate > 0){
            document.write(bannerTwo.banner);
            }
            //Banner Three
            start=new Date (bannerThree.dateStart);
            end=new Date (bannerThree.dateEnd);

            if (start - currentDate < 0 && end - currentDate > 0){
            document.write(bannerThree.banner);
            }

        </script> 
    </body>
<html>
0
Kruthi V 12 Aug. 2015 im 21:59

Sie können ein Datum wie dieses initialisieren

var date = new Date("08/12/2015");

Mehr Info

Um zwei Daten zu vergleichen, können Sie Folgendes tun:

var date1 = new Date("08/12/2015");
var date2 = new Date("07/12/2015");
if( date1.getTime() > date2.getTime()) {
     console.log(date1);
}
0
dbenson 12 Aug. 2015 im 21:20