0

私は現在このスクリプトを使用しています

<script type="text/javascript">
var _next = new Date(new Date() * 1 + 24*60*60*1000*9);
document.write(" Your expected delivery date is " + (_next.getMonth() + 1) + "/" + _next.getDate() + "/" + _next.getFullYear());
</script>  

可能であれば、週末を除外する方法を知りたいです。

4

4 に答える 4

1

必要に応じて時間を追加してください。これは翌営業日に配信されるコードです。

function myFunction() { 
var d = new Date();
var weekday = new Array(7);
weekday[0] = "sunday";
weekday[1] = "monday";
weekday[2] = "tuesday";
weekday[3] = "wednesday";
weekday[4] = "thursday";
weekday[5] = "friday";
weekday[6] = "saturday";
var monthday = new Array(12);
monthday[0] = "01";
monthday[1] = "02";
monthday[2] = "03";
monthday[3] = "04";
monthday[4] = "05";
monthday[5] = "06";
monthday[6] = "07";
monthday[7] = "08";
monthday[8] = "09";
monthday[9] = "10";
monthday[10] = "11";
monthday[11] = "12";


if (d.getDay() > 0 && d.getDay() <= 4) {
    d.setHours(d.getHours() + 24);
    var deliver = weekday[d.getDay()];
    var day = d.getDate();
    var month = monthday[d.getMonth()];
    var year = d .getFullYear();
    document.getElementById("deliveryday").innerHTML = deliver + ' ' + day + '-' + month + '-' + year;
} else if (d.getDay() == 0) {
    d.setHours(d.getHours() + 48);
    var deliver = weekday[d.getDay()];
    var day = d.getDate();
    var month = monthday[d.getMonth()];
    var year = d .getFullYear();
    document.getElementById("deliveryday").innerHTML = deliver + ' ' + day + '-' + month + '-' + year;
} else {
    d.setHours(d.getHours() + 72);
    var deliver = weekday[d.getDay()];
    var day = d.getDate();
    var month = monthday[d.getMonth()];
    var year = d .getFullYear();
    document.getElementById("deliveryday").innerHTML = deliver + ' ' + day + '-' + month + '-' + year;
}
}
myFunction()
于 2014-09-22T08:17:45.533 に答える
0

これを試して:

function deliver(inDays, startingOn){
  var s, f = 0, d;
  if(!inDays)inDays = 0;
  s = !startingOn ? new Date : new Date(startingOn);
  for(var i=0,n,t=0,l=inDays; i<l; i++,t+=86400000){
    n = new Date(s.getTime()+t).getDay();
    if(n === 0 || n === 6)f++;
  }
  d = new Date(s.getTime()+86400000*(inDays+f));
  return 'Your expected delivery date is '+d.toLocaleDateString();
}
// same day delivery
console.log(deliver());
// deliver in 9 days stating today
console.log(deliver(9));
// deliver in 9 days starting on October 12, 2013 - must be a valid Date String
console.log(deliver(9, 'October 12, 2013'));
/* Note that in the last example the Date starts on the weekend, therefore same
   day becomes Monday, which if you don't work weekends is the first day you
   would see the order anyways.
*/

これは、何かが配信されたときにクライアントに表示するのに適しています。PHP などのサーバー側言語を使用して、現在地に応じてデータベースに実際の日付を設定してください。

閏年でも動くのでお金を払ってください。ハ!

于 2013-10-04T21:38:11.190 に答える
0
<script type="text/javascript"> 
<!--
var myDate=new Date();
if ( myDate.getHours() < 12 ) // less than 12pm
  {
  var daystodeliver = [7,5,5,5,5,8,7][myDate.getDay()];
  }
else
  {
  var daystodeliver = [7,7,7,7,7,9,8][myDate.getDay()];
  }
myDate.setDate(myDate.getDate()+daystodeliver);
document.write(['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']     [myDate.getDay()]);
var dayofmonth =  myDate.getDate();
suffix = ((dayofmonth < 10)||(dayofmonth > 20)) ?   ['th','st','nd','rd','th','th','th','th','th','th'][dayofmonth % 10] : 'th';
document.write(' ' + dayofmonth + suffix + ' ');
 document.write(['January','February','March','April','May','June','July','August','Septembe    r','October','November','December'][myDate.getMonth()]);
// -->
于 2013-10-06T16:41:45.473 に答える