Js日付文字列の日数を増やす方法

2210 ワード

//        
//dataStr     
//dayCount       
//return   n        
function dateAddDays(dataStr,dayCount) {
    var strdate=dataStr; //     
    var isdate = new Date(strdate.replace(/-/g,"/"));  //             
    isdate = new Date((isdate/1000+(86400*dayCount))*1000);  //   1 
    var pdate = isdate.getFullYear()+"-"+(isdate.getMonth()+1)+"-"+(isdate.getDate());   //           
 
    return pdate;
}
ローカル文字列方式toLocareStering()による最新の時間を取得しました.
//      ,       t+1
function getLocalTime(addNum) {
    var year,month,day,today,thatDay;
    today = new Date().getTime();
    thatDay = new Date( today + addNum*(24*60*60*1000) ).toLocaleString().substr(0,9);
    year  = thatDay.substr(0,4);
    month = thatDay.substr(5,1);
    day = thatDay.substr(7,2);
    thatDay = year+"-"+month +"-"+day;
   return thatDay
}
getLocalTime(2)
 現在の日付を取得するタイムスタンプtodayは、タイムスタンプがミリ秒単位であるため、nをミリ秒n*24860*60*1000に変換する必要があります. 
    現在のタイムスタンプ(ミリ秒)+は増加する時間(ミリ秒)が必要です. 得たい未来の時間(ミリ秒)
    その後、new Date(取得したい未来時間(ミリ秒)により、nを加えた後の標準時間を取得する. Wed Aug 04 2016年15:27:14 GMT+0800(中国標準時間)
    toLocareStering()でローカル文字列に変換します. 2016/8/4午後3:28:11です.
    最後に文字列の切り取りとスティッチングで得られます.
    しかし、toLocaleStering()メソッドには、ブラウザの互換性の問題があります.
    問題の説明:
    DateオブジェクトのtoLocale Stringメソッドには、各ブラウザでの返却値に書式上の差があります.
    影響:
    文字列の書式と長さが一致しないことを返します.
それに影響を受けたのはあるブラウザではなく、すべてのブラウザです.下のテスト状況を見てください.
Chrome:Wed Aug 03 2016:58:48 GMT+0800(中国標準時間)     toLocale String後: 2016/8/3午後3:57:51
Firefox:Wed Aug 03 2016:03:05 GMT+0800                                    toLocale String後: 2016/8/3午後4:03:05
Safari:Wed Aug 03 2016:06:37 GMT+0800(Ö)йヽoo...................................................×¼_;±¼回   toLocale String後: ウェストデー、August 03、2016年16:06:37
この方法は互換性においてあまり保障されていないことが分かります.
したがって、getFulYear、getMonth、getDateの方法でそれぞれ年月日を取得するという方法がいいです.この方法をお勧めします.