我的脚本有问题,应该将日期从定义的日期增加一天。 这是代码
var data_inizio ="25/05/2016";
var turni = ["A", "B", "C", "D", "E"];
var n_g_mesi = ["31","28","31","30","31","30","31","31","30","31","30","31"];
//Costruiso la data nel formato preferito
var data = new Date();
var aaaa, mm, gg;
gg = data.getDate();
mm = data.getMonth()+1;
aaaa = data.getFullYear();
n_g_q_mese = n_g_mesi[ data.getMonth()]; // numeri di giorni in un mese
var numero_turni = 7;
var n = turni.length;
for(var i=0;i<numero_turni;i++) {
$('#ul').append('<li>'+ data_inizio+' '+ turni[i%n]+"<br />\n" +'</li>');
var gg = gg%n_g_q_mese+1;
if(gg==1){
mm = mm%12+1;
if(mm==3 && aa%4==0 && n_g_q_mese==28){ // se l'anno è bisestile
mm = 2;
gg = n_g_q_mese = 29;
}else{
n_g_q_mese = n_g_mesi[mm];
if(mm==1)
aa++;
}
}
var data_inizio = gg+"/"+mm+"/"+aaaa;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul id="ul"></ul>
&#13;
脚本未检测到我的开始日期25/05/2016,但会考虑当前的日期。我哪里错了?你能帮我吗
谢谢
答案 0 :(得分:1)
主要问题是你已经完成了
data_inizio
...并且不以任何方式使用您的Date
。执行此操作时,默认为当前日期。
相反,请使用接受年,月,日(以及可选时间信息)的var data = new Date(2016, 4, 25); // 25/05/2016 because months start with zero
构造函数。请注意,当您这样做时,月份值从0开始,所以:
Date
但其余代码的工作很多比实际工作更难>并且错误地实现了闰年算法。幸运的是,你根本不必这样做,data.setDate(data.getDate() + 1);
如果你把这一天增加一个,我很乐意为你做这件事:
var turni = ["A", "B", "C", "D", "E"];
var data = new Date(2016, 4, 25); // "25/05/2016"
var numero_turni = 7;
var n = turni.length;
for (var i = 0; i < numero_turni; i++) {
$("#ul").append(
"<li>" +
formatDate(data) +
' '+ turni[i%n] +
"<br />\n" +
"</li>");
data.setDate(data.getDate() + 1);
}
function formatDate(dt) {
var g = String(dt.getDate());
var m = String(dt.getMonth() + 1);
var a = String(dt.getFullYear());
if (g.length == 1) {
g = "0" + g;
}
if (m.length == 1) {
m = "0" + m;
}
return g + "/" + m + "/" + a;
}
它自动处理下个月(和年)的包装。
因此,如果我正确阅读其余代码:
<ul id="ul"></ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
<span>
&#13;
答案 1 :(得分:0)
从这里
var data = new Date();
var aaaa, mm, gg;
gg = data.getDate();
mm = data.getMonth()+1;
aaaa = data.getFullYear();
您可以从当前日期获取日期,而根本不使用data_inizio。只是打印在第一个LI元素。
从初始日期开始计算这些值,所有值都可以。
希望这有帮助。