2011-12-05 22 views
14

मैं वर्तमान सप्ताह की आरंभ तिथि और समाप्ति तिथि प्रदर्शित करना चाहता हूं। (सप्ताह की शुरुआत = सोमवार, सप्ताह का अंत = रविवार) मैं सोमवार को प्रदर्शित करने का प्रबंधन करता हूं।वर्तमान सप्ताह की आरंभ तिथि और समाप्ति तिथि प्राप्त करें (सोमवार से सप्ताह और रविवार के साथ अंत)

लेकिन मैं रविवार की तारीख पाने में असमर्थ हूं। अगर कोई समाधान है तो कृपया मुझे पोस्ट करें।

+0

"सोमवार रही" के लिए अपने कोड क्या है? –

उत्तर

30
<script> 
Date.prototype.getWeek = function(start) 
{ 
     //Calcing the starting point 
    start = start || 0; 
    var today = new Date(this.setHours(0, 0, 0, 0)); 
    var day = today.getDay() - start; 
    var date = today.getDate() - day; 

     // Grabbing Start/End Dates 
    var StartDate = new Date(today.setDate(date)); 
    var EndDate = new Date(today.setDate(date + 6)); 
    return [StartDate, EndDate]; 
} 

// test code 
var Dates = new Date().getWeek(); 
alert(Dates[0].toLocaleDateString() + ' to '+ Dates[1].toLocaleDateString()) 
</script> 

मुझे विश्वास है कि यह काम करता है।

+0

यू बहुत बहुत धन्यवाद यह !!!!!!!! काम करता है – Vishnu

+1

@ user725184, हर डु संतोषजनक जवाब, कृपया जवाब स्वीकार पाया। अधिक के लिए http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work देखें। –

+0

एक बुरा सा के रूप में यह बेकार की तारीख वस्तु के समय और तारीख बदल जाता है। – RobG

0

आप अपनी आवश्यकताओं को पूरा करने के लिए वापसी मूल्य को संशोधित कर सकते हैं, अभी यह सिर्फ रविवार की पूरी वस्तु को वापस कर देता है।

Date.prototype.endWeek=function(){ 
    return new Date(this.getFullYear(), this.getMonth(),(7-this.getDay())+this.getDate()); 
} 

//call like this 
var myDate = new Date(); 
var Sunday = myDate.endWeek(); 
alert("Sunday falls on "+ Sunday.getDate()); 
11

निम्नलिखित समारोह चाल करना होगा:

// return an array of date objects for start (monday) 
// and end (sunday) of week based on supplied 
// date object or current date 
function startAndEndOfWeek(date) { 

    // If no date object supplied, use current date 
    // Copy date so don't modify supplied date 
    var now = date? new Date(date) : new Date(); 

    // set time to some convenient value 
    now.setHours(0,0,0,0); 

    // Get the previous Monday 
    var monday = new Date(now); 
    monday.setDate(monday.getDate() - monday.getDay() + 1); 

    // Get next Sunday 
    var sunday = new Date(now); 
    sunday.setDate(sunday.getDate() - sunday.getDay() + 7); 

    // Return array of date objects 
    return [monday, sunday]; 
} 

// Mon Nov 12 2012 00:00:00 
// Sun Nov 18 2012 00:00:00 
alert(startAndEndOfWeek(new Date(2012,10,14)).join('\n')); 
5

इस प्रयास करें:

var current = new Date();  // get current date  
var weekstart = current.getDate() - current.getDay() +1;  
var weekend = weekstart + 6;  // end day is the first day + 6 
var monday = new Date(current.setDate(weekstart)); 
var sunday = new Date(current.setDate(weekend)); 
+0

THX और मेरे लिए शुद्ध जे एस – zyrex

+0

सर्वश्रेष्ठ उत्तर का काम कर रहे। – saawsann

+0

यह नहीं करना चाहिए workwith सप्ताह अतिव्यापी महीने। – Habib

3

SetDate इच्छा महीने के दिन निर्धारित करता है। आरंभ और इस महीने के अंत के दौरान setDate का उपयोग करना, गलत सप्ताह

var curr = new Date("08-Jul-2014"); // get current date 
var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week 
var last = first + 6; // last day is the first day + 6 
var firstday = new Date(curr.setDate(first)); // 06-Jul-2014 
var lastday = new Date(curr.setDate(last)); // 12-Jul-2014 

में परिणाम होगा, तो स्थापित करने की तारीख 01-Jul-2014 है, यह के रूप में 29 जून 2014 और के रूप में 05-Jun- lastday firstday दिखाएगा 2014 के बजाय 05-जुलाई -2014। तो इस मुद्दे को दूर करने के लिए मैंने

var curr = new Date(); 
day = curr.getDay(); 
firstday = new Date(curr.getTime() - 60*60*24* day*1000); // will return firstday (i.e. Sunday) of the week 
lastday = new Date(curr.getTime() + 60 * 60 *24 * 6 * 1000); // adding (60*60*6*24*1000) means adding six days to the firstday which results in lastday (Saturday) of the week 
+0

यहां केवल एक ही समाधान है जो सभी विशेष मामलों को संभालता है, धन्यवाद – Thomas

1

अन्य उदाहरणों में आपको एक समस्या होगी जब रविवार दूसरे महीने में पड़ता है। इस समस्या का समाधान करना चाहिए:

var today, todayNumber, mondayNumber, sundayNumber, monday, sunday; 
    today = new Date(); 
    todayNumber = today.getDay(); 
    mondayNumber = 1 - todayNumber; 
    sundayNumber = 7 - todayNumber; 
    monday = new Date(today.getFullYear(), today.getMonth(), today.getDate()+mondayNumber); 
    sunday = new Date(today.getFullYear(), today.getMonth(), today.getDate()+sundayNumber); 
0

मुझे आशा है कि यह आपके लिए काम करेंगे:

Date.prototype.getWeekEndDate = function() { 
    diff = 6 - this.getDay(); 
    if (diff < 0) { 
     diff += 6; 
    } 
    this.setDate(this.getDate() + (1 * diff)); 
    return this; 
} 
Date.prototype.getWeekStartDate = function() { 
    diff = this.getDay() - 6; 
    if (diff < 0) { 
     diff += 7; 
    } 
    return this.setDate(this.getDate() + (-1 * diff)); 
} 

ये विधि प्रारंभ दिनांक और सप्ताह के अंत की तारीख वापस आ जाएगी।

0
  1. विभिन्न महीनों के मुद्दों को भी नीचे कोड के साथ तय किया गया है।
  2. जोड़ा गया प्रारूप "M.dd.yyyy" फ़ंक्शन।

    समारोह startAndEndOfWeek (setDate) { दिन = अशक्त था; तिथि = अशक्त था, महीने = बातिल; वर्ष = बातिल; मोन = अशक्त था; मंगल = अशक्त था; = अशक्त शादी किया गया था; थू = अशक्त था; था मुक्त = बातिल; = अशक्त जोड़ा गया है; सूरज = अशक्त था;

    var now = setDate ? new Date(setDate) : new Date(); 
    now.setHours(0,0,0,0); 
    
    var monday = new Date(now); var tuesday = new Date(now); var wednesday = new Date(now); var thursday = new Date(now); 
    var friday = new Date(now); var saturday = new Date(now); var sunday = new Date(now); 
    
    if(new Date(now).getDay() == 0) 
    { 
        monday.setDate(monday.getDate() - 6); 
        tuesday.setDate(tuesday.getDate() - 5); 
        wednesday.setDate(wednesday.getDate() - 4); 
        thursday.setDate(thursday.getDate() - 3); 
        friday.setDate(friday.getDate() - 2); 
        saturday.setDate(saturday.getDate() - 1); 
        sunday.setDate(sunday.getDate() - 0); 
    } 
    else 
    { 
        monday.setDate(monday.getDate() - monday.getDay() + 1); 
        tuesday.setDate(tuesday.getDate() - tuesday.getDay() + 2); 
        wednesday.setDate(wednesday.getDate() - wednesday.getDay() + 3); 
        thursday.setDate(thursday.getDate() - thursday.getDay() + 4); 
        friday.setDate(friday.getDate() - friday.getDay() + 5); 
        saturday.setDate(saturday.getDate() - saturday.getDay() + 6); 
        sunday.setDate(sunday.getDate() - sunday.getDay() + 7); 
    } 
    
    date = monday.getDate(); 
    month = monday.getMonth(); 
    year = monday.getFullYear(); 
    mon = getMonthValue(month) + "." + getDateValue(date) + "." + year; 
    
    date = tuesday.getDate(); 
    month = tuesday.getMonth(); 
    year = tuesday.getFullYear(); 
    tue = getMonthValue(month) + "." + getDateValue(date) + "." + year; 
    
    date = wednesday.getDate(); 
    month = wednesday.getMonth(); 
    year = wednesday.getFullYear(); 
    wed = getMonthValue(month) + "." + getDateValue(date) + "." + year; 
    
    date = thursday.getDate(); 
    month = thursday.getMonth(); 
    year = thursday.getFullYear(); 
    thu = getMonthValue(month) + "." + getDateValue(date) + "." + year; 
    
    date = friday.getDate(); 
    month = friday.getMonth(); 
    year = friday.getFullYear(); 
    fri = getMonthValue(month) + "." + getDateValue(date) + "." + year; 
    
    date = saturday.getDate(); 
    month = saturday.getMonth(); 
    year = saturday.getFullYear(); 
    sat = getMonthValue(month) + "." + getDateValue(date) + "." + year; 
    
    date = sunday.getDate(); 
    month = sunday.getMonth(); 
    year = sunday.getFullYear(); 
    sun = getMonthValue(month) + "." + getDateValue(date) + "." + year; 
    
    return [mon, tue , wed, thu, fri, sat, sun]; 
    

    }

    समारोह getMonthValue (महीने) { स्विच (महीने) {मामले 0: वापसी "जन"; तोड़; मामले 1: वापसी "फ़रवरी"; तोड़; मामले 2: वापसी "मार्च"; तोड़; मामले 3: वापसी "अप्रैल"; तोड़; मामले 4: वापसी "मई"; तोड़; मामले 5: वापसी "जून"; तोड़; मामले 6: वापसी "क्रिसमस"; तोड़; मामले 7: वापसी "अगस्त"; तोड़; मामले 8: वापसी "सितं"; तोड़; मामले 9: वापसी "अक्टूबर"; तोड़; मामले 10: वापसी "नवं"; तोड़; मामले 11: वापसी "दिसं"; तोड़; }} समारोह getDateValue (दिन) {if (parseInt (दिन) < 10) {वापसी "0" + दिन; } लौट दिन; }

1

RobG के जवाब के आधार पर, मैं दो मिल इस दो सप्ताह आधी रात से शुरू होने वाले सोमवार से समाप्त हो गया और अंत में रविवार 23 पर: 59: 59,999।

var weekMap = [6, 0, 1, 2, 3, 4, 5]; 

    function startAndEndOfWeek(date) { 
    var now = new Date(date); 
    now.setHours(0, 0, 0, 0); 
    var monday = new Date(now); 
    monday.setDate(monday.getDate() - weekMap[monday.getDay()]); 
    var sunday = new Date(now); 
    sunday.setDate(sunday.getDate() - weekMap[sunday.getDay()] + 6); 
    sunday.setHours(23, 59, 59, 999); 
    return [monday, sunday]; 
    } 
+1

यह सभी परिदृश्यों के लिए एकदम सही है –

+0

हम इसे टाइमस्टैम्प वाले दस्तावेज़ों के लिए प्रति सप्ताह कुल रकम के लिए कॉच डीबी सूची कार्यों में उपयोग कर रहे हैं, और ऐसा लगता है कि अब तक काफी अच्छा काम है । – jo2

0

थोड़ा संशोधित @ReadWriteCode का जवाब है, इस OGSA अलग महीनों के साथ सफलतापूर्वक काम करता है।

Date.prototype.getWeek = function() 
{ 
    var today = new Date(); 
    var day = today.getDay(); 
    var date = today.getDate() - day; 

     // Grabbing Start/End Dates 
    var StartDate = new Date(); 
    var EndDate = new Date(); 
    StartDate.setHours(0,0,0,0); EndDate.setHours(0,0,0,0); 
    StartDate.setDate(today.getDate()-day); 
    EndDate.setDate(today.getDate()-day+6); 
    return { 
     startDate:StartDate, 
     endDate: EndDate 
    }; 
} 
var thisWeekDates=new Date().getWeek(); 
संबंधित मुद्दे