var d = new Date();
d.setMonth(d.getMonth() - 3);
यह जनवरी के लिए काम करता है। इस स्निपेट को चलाएं:
var d = new Date("January 14, 2012");
console.log(d.toLocaleDateString());
d.setMonth(d.getMonth() - 3);
console.log(d.toLocaleDateString());
कुछ कैवियट हैं ...
एक महीना एक जिज्ञासु चीज है। आप 1 महीने को कैसे परिभाषित करते हैं? तीस दिन? अधिकांश लोग कहेंगे कि एक महीने पहले का मतलब महीने के उसी दिन है, जो पिछले महीने के उद्धरण के लिए आवश्यक है । लेकिन आधे से ज्यादा समय, यानी ३१ दिन पहले, ३० नहीं। और अगर आज ३१ वां महीना है (और यह अगस्त या डेसिमेबर नहीं है), तो उस महीने का दिन पिछले महीने में मौजूद नहीं है।
दिलचस्प बात यह है कि यदि आप यह पूछते हैं कि Google किसी दिन से एक महीने पहले क्या है, तो आप जावास्क्रिप्ट से सहमत हैं :

यह भी कहता है कि एक महीना 30.4167 दिन लंबा होता है :

तो, 31 मार्च से एक महीने पहले, 28 मार्च से एक दिन पहले, 3 दिन पहले? यह सब इस बात पर निर्भर करता है कि आप "एक महीने पहले" से क्या मतलब है। जाओ अपने उत्पाद के मालिक के साथ एक बातचीत है।
यदि आप ऐसा करना चाहते हैं जैसे मोमेंट्स करते हैं, और महीने के आखिरी दिनों की इन त्रुटियों को महीने के आखिरी दिन तक ले जाकर ठीक करते हैं, तो आप ऐसा कुछ कर सकते हैं:
const d = new Date("March 31, 2019");
console.log(d.toLocaleDateString());
const month = d.getMonth();
d.setMonth(d.getMonth() - 1);
while (d.getMonth() === month) {
d.setDate(d.getDate() - 1);
}
console.log(d.toLocaleDateString());
यदि आपकी आवश्यकताएं इससे अधिक जटिल हैं, तो कुछ गणित का उपयोग करें और कुछ कोड लिखें। आप एक डेवलपर हैं! आपको लाइब्रेरी स्थापित करने की आवश्यकता नहीं है! आपको stackoverflow से कॉपी और पेस्ट नहीं करना है! आप अपने आप को ठीक वही करने के लिए कोड विकसित कर सकते हैं जिसकी आपको आवश्यकता है!