伙计们我对此疯狂,我知道有很多使用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次。任何想法,我真的想不出怎么做..
提前收到任何帮助或想法!
伊恩
答案 0 :(得分:0)
您的代码不引用任何jQuery,因此假设您希望使用jQuery:
以循环开始 - 这样您就可以轻松定义所需的图像数量。通过使用日期对象,您不必担心减去很多天。 (工作示例:http://jsfiddle.net/qH8xX/2/)
var html = "";
for( i = 0; i < 20; i++ ) {
html += "<li>" + i + "</li>";
}
$("#gallery").html( html );
在循环中,从日期中减去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。轮到你了:现在使用日期对象创建一个具有正确文件名的图像标记。使用此功能有助于:http://www.w3schools.com/jsref/jsref_obj_date.asp