Javascript从包含日期的文件名创建图库

时间:2012-08-22 15:32:27

标签: javascript jquery image html5 date

伙计们我对此疯狂,我知道有很多使用javascript的约束,但我正在构建的网站只有html文件。我也可以使用php,但它需要是一个可以引用的单独文件,但不包括在内。最终的扩展名必须是.html

那就是说我正在拍摄当天脚本的照片,以获取包含日期的图像名称的图像目录。例如,今天的图像是 20120822.jpg ,并且有一个巨大的图像目录,直到今年年底。明天的图片将是 20120823.jpg ,昨天 20120821.jpg

好的那部分很简单..但是现在我想创建一个画廊,其中包含以前显示的所有图像..所以每个图像都会导致当前日期的文件名。所以我需要读取目录或者只生成导致当前图像的日期文件名的最后20个图像。我会满足于前20张图片或其他东西。

这是我用于当天照片的代码..任何想法我会怎么做?

    <script>


     //returns the current date in YYYYMMDDf_01.jpg format
     function getCurrentDateString(){

       //make a new date object set at the current date
       var currentDate = new Date();

       //get the four position year and
       //make it a string
       var currentYear = currentDate.getFullYear() + "";

       //get the zero-indexed month and add 1
       //for the real month and make it a strintg
       var currentMonth = (currentDate.getMonth() + 1) + "";

       //add a zero at the beginning if only one
       //digit month
       if (currentMonth.length == 1) {
         currentMonth = "0" + currentMonth;
       }

       //get the current day of the month and
       //make it a string
       var currentDayOfMonth = currentDate.getDate() + "";

       //add a zero if necessary
       if (currentDayOfMonth.length == 1) {
         currentDayOfMonth = "0" + currentDayOfMonth;
       }

       return(currentYear + currentMonth + currentDayOfMonth);
     }

     //preload image based upon currentDate
     var currentDateString = getCurrentDateString();

     var dailyImageObject = new Image();

      var dailyImageObjectURL = new Image();

     dailyImageObject.src = "http://perillotours.com/galleries/photo-of-the-day/images/" +         currentDateString + ".jpg";

     dailyImageObjectURL.href = "http://perillotours.com/galleries/photo-of-the-day/images/" + currentDateString + ".jpg";

     //called when the page loads to
     //set the actual HTML IMG element to have the same
     //SRC as our cached Image object
     function showDailyImage(){
       document.getElementById("dailyIMGElement").src = dailyImageObject.src;
     }
      function showDailyImageURL(){
       document.getElementById("dailyIMGElementURL").href = dailyImageObjectURL.href;
     }

     </script>

这是我在html页面中放置的代码,用于显示当天的照片。

    <a rel="prettyphoto" id="dailyIMGElementURL">
    <img width="523" style="background-color: #000000;" id="dailyIMGElement" height="335" border="0" /></a> 

所以基本上我想用最后20张图像循环上面的代码20次。任何想法,我真的想不出怎么做..

提前收到任何帮助或想法!

伊恩

1 个答案:

答案 0 :(得分:0)

您的代码不引用任何jQuery,因此假设您希望使用jQuery:

  1. 以循环开始 - 这样您就可以轻松定义所需的图像数量。通过使用日期对象,您不必担心减去很多天。 (工作示例:http://jsfiddle.net/qH8xX/2/

    var html = "";
    for( i = 0; i < 20; i++ ) {
        html += "<li>" + i + "</li>";
    }
    
    $("#gallery").html( html );
    
  2. 在循环中,从日期中减去1,然后将其另存为日期。 (工作示例:http://jsfiddle.net/qH8xX/3/

    var html = "";
    var date = new Date(); // store the current date
    
    for( i = 0; i < 20; i++ ) {
        // subtract 1 from date
        // more here: http://stackoverflow.com/questions/1187824/finding-date-by-subtracting-x-number-of-days-from-a-particular-date-in-javascrip
        date = new Date( date.setDate( date.getDate() - 1 ) );
        html += "<li>" + i + " = " + date.toDateString() + "</li>";
    }
    
    $("#gallery").html( html );
    
  3. 3。轮到你了:现在使用日期对象创建一个具有正确文件名的图像标记。使用此功能有助于:http://www.w3schools.com/jsref/jsref_obj_date.asp