पल JS UTC को स्थानीय समय


145

मैं यूटीसी समय को स्थानीय समय में बदलने की कोशिश कर रहा हूं। मैं इस लिंक से इस उदाहरण का अनुसरण कर रहा हूं: http://jsfiddle.net/FLhpq/4/light/ । मुझे सही स्थानीय आउटपुट नहीं मिल रहा है। उदाहरण के लिए, यदि इसके 10: 30 बजे यहां, 10:30 बीमार होने के बजाय 15: 30 मिलते हैं। यहां मेरा कोड है:

var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');

var localTime  = moment.utc(date).toDate();

localTime = moment(localTime).format('YYYY-MM-DD HH:mm:ss');

console.log("moment: " + localTime);

कोई बात नहीं मैं हमेशा यूटीसी के समय बाहर आता हूं। मैं ह्यूस्टन में रहता हूं इसलिए मुझे पता है कि समय क्षेत्र मुद्दा है। मैंने लिंक में कोड का पालन किया है, लेकिन स्थानीय समय प्राप्त कर सकता है। मैं क्या गलत कर रहा हूं?

जवाबों:


238

UTC समय को स्थानीय में परिवर्तित करने के लिए आपको उपयोग करना होगा moment.local()

अधिक जानकारी के लिए डॉक्स देखें

उदाहरण:

var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');

console.log(date); // 2015-09-13 03:39:27

var stillUtc = moment.utc(date).toDate();
var local = moment(stillUtc).local().format('YYYY-MM-DD HH:mm:ss');

console.log(local); // 2015-09-13 09:39:27

डेमो:

var date = moment.utc().format();
console.log(date, "- now in UTC"); 

var local = moment.utc(date).local().format();
console.log(local, "- UTC now to local"); 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>


16
मेरे लिए काम नहीं किया, समय अभी भी मेरे समय से 5 घंटे आगे है जो सही है
ब्रायन स्क्रूजिन्स

यदि क्षणिका स्थानीय समयक्षेत्र के बारे में पता है, तो क्या इसे पुनः प्राप्त करने का एक तरीका है या क्षण है ।.t..guess () ऐसा करने की आवश्यकता है?
jEremyB

@jEremyB, moment().format('Z')और moment().format('ZZ')आपकी मदद कर सकता है। इसके अलावा, एक नज़र (new Date()).getTimezoneOffset()
अक्षतंतु

@brianScroggins, भूलना न भूलें .utc(date)। पहले भाग में, var local = ...यह नहीं होने वाली रेखा भ्रामक हो सकती है।
जोसेलिन

62

इसे इस्तेमाल करे:

let utcTime = "2017-02-02 08:00:13";

var local_date= moment.utc(utcTime ).local().format('YYYY-MM-DD HH:mm:ss');

3
उस ज़ोन को निर्दिष्ट करना जिसमें यह सहेजा गया था, मेरे लिए काम किया (यह उत्तर)। यह भी पाया गया कि यह जीवन को आसान बनाता है यदि आप हमेशा utc में चीजों को सहेजते हैं तो क्लाइंट की तरफ प्रारूपित करें।
जुआन पाब्लो उगास

1
इसने मेरे मामले में काम किया जहां हम अपने db में UTC में समय बचा रहे हैं और केवल क्लाइंट पर स्थानीय समय प्रदर्शित कर रहे हैं। धन्यवाद।
एलेक्स एलहर्ट

18
let utcTime = "2017-02-02 08:00:13.567";
var offset = moment().utcOffset();
var localText = moment.utc(utcTime).utcOffset(offset).format("L LT");

इस JsFiddle की कोशिश करो


2
यह बहुत अच्छा काम करता है, लेकिन .local () एक ही परिणाम क्यों नहीं देता है?
स्टीव

यह फेल्ड मेरे कंप्यूटर पर निम्न परिणाम देता है: 02/02/2017 8:00 पूर्वाह्न (UTC समय) 02/02/2017 10:00 पूर्वाह्न (स्थानीय समय) 02/02/2017 9:00 पूर्वाह्न (स्थानीय समय एक और तरीका) )
स्टीव

3

नोट: कृपया तदनुसार दिनांक प्रारूप को अपडेट करें।

प्रारूप तिथि

   __formatDate: function(myDate){
      var ts = moment.utc(myDate);
      return ts.local().format('D-MMM-Y');
   }

प्रारूप समय

  __formatTime: function(myDate){
      var ts = moment.utc(myDate);
      return ts.local().format('HH:mm');
  },

3

यूटीसी को स्थानीय समय में परिवर्तित करना

let UTC = moment.utc()
let local = moment(UTC).local()

या आप सीधे स्थानीय समय प्राप्त करना चाहते हैं

let local = moment()

var UTC = moment.utc()
console.log(UTC.format()); // UTC time

var cLocal = UTC.local()
console.log(cLocal.format()); // Convert UTC time

var local = moment();
console.log(local.format()); // Local time
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>


0

मैंने एक फ़ंक्शन बनाया है जो सभी टाइमज़ोन को स्थानीय समय में परिवर्तित करता है।

आवश्यकताएँ:

1. npm i moment-timezone

function utcToLocal(utcdateTime, tz) {
    var zone = moment.tz(tz).format("Z") // Actual zone value e:g +5:30
    var zoneValue = zone.replace(/[^0-9: ]/g, "") // Zone value without + - chars
    var operator = zone && zone.split("") && zone.split("")[0] === "-" ? "-" : "+" // operator for addition subtraction
    var localDateTime
    var hours = zoneValue.split(":")[0]
    var minutes = zoneValue.split(":")[1]
    if (operator === "-") {
        localDateTime = moment(utcdateTime).subtract(hours, "hours").subtract(minutes, "minutes").format("YYYY-MM-DD HH:mm:ss")
    } else if (operator) {
        localDateTime = moment(utcdateTime).add(hours, "hours").add(minutes, "minutes").format("YYYY-MM-DD HH:mm:ss")
    } else {
        localDateTime = "Invalid Timezone Operator"
    }
    return localDateTime
}

utcToLocal("2019-11-14 07:15:37", "Asia/Kolkata")

//Returns "2019-11-14 12:45:37"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.