ইউটিসি তারিখের সময়টিকে স্থানীয় তারিখের সময় রূপান্তর করুন


337

সার্ভারটি থেকে আমি এই ফর্ম্যাটটিতে একটি ডেটটাইম ভেরিয়েবল পাই: 6/29/2011 4:52:48 PMএবং এটি ইউটিসি সময়ে। আমি এটি জাভাস্ক্রিপ্ট ব্যবহার করে বর্তমান ব্যবহারকারীর ব্রাউজারের সময় রূপান্তর করতে চাই।

এটি কীভাবে জাভাস্ক্রিপ্ট বা jQuery ব্যবহার করে করা যেতে পারে?



1
সাবধান হও. এটি একটি অদ্ভুত তারিখের ফর্ম্যাট, সুতরাং আপনি যে কোনও সমাধান ব্যবহার করুন না কেন তা নির্দিষ্ট করে নিশ্চিত করুন। যদি সম্ভব হয় তবে সার্ভারটি তারিখটি আইএসও ফর্ম্যাটে প্রেরণ করুন।
মাইকেল শ্যাপার 4

উত্তর:


404

জাভা স্ক্রিপ্টে তারিখে রূপান্তর করার আগে স্ট্রিংটিতে 'ইউটিসি' যুক্ত করুন:

var date = new Date('6/29/2011 4:52:48 PM UTC');
date.toString() // "Wed Jun 29 2011 09:52:48 GMT-0700 (PDT)"

5
ফাংশন লোকালাইজডেটসেট্র (তারিখ_ টো_কনভার্ট_স্ট্রি) {var তারিখ_টো_কনভার্ট = নতুন তারিখ (তারিখ_ টো_কনভার্ট_স্ট্রি); var লোকাল_ডেট = নতুন তারিখ (); date_to_convert.setHours (date_to_convert.getHours () + + local_date.getTimezoneOffset ()); প্রত্যাবর্তনের তারিখ_ টু কনভার্ট.টো স্ট্রিং (); }
ম্যাট

4
@ ম্যাট অফসেট কয়েক মিনিট সময় নয়, ঘন্টা সময় দেয়, আপনাকে 60
ist

50
এটি ধরে নিয়েছে যে স্ট্রিংয়ের তারিখের অংশটি ইউএস স্ট্যান্ডার্ড, মিমি / ডিডি / ওয়াইওয়াইওয়াই অনুসরণ করছে, যা সম্ভবত ইউরোপ এবং বিশ্বের অন্যান্য অঞ্চলে ঘটেনি।
AsGoodAsItGets

7
@ ডিজিটালবাথ ক্রোমে কাজ করে তবে ফায়ারফক্সে কাজ করে না।
গণেশ সাতপুট


138

আমার দৃষ্টিতে সার্ভারগুলি সর্বদা সাধারণ ক্ষেত্রে স্ট্যান্ডার্ডাইজড আইএসও 8601-ফর্ম্যাটে একটি ডেটটাইম ফিরিয়ে দেয়

এখানে আরও তথ্য:

এই ক্ষেত্রে সার্ভার ফিরে আসবে '2011-06-29T16:52:48.000Z' যা সরাসরি জেএস তারিখ অবজেক্টে ফিড করবে।

var utcDate = '2011-06-29T16:52:48.000Z';  // ISO-8601 formatted date returned from server
var localDate = new Date(utcDate);

দ্য localDateডান স্থানীয় সময় যা আমার ক্ষেত্রে দুই ঘন্টা পরে (ডিকে সময়) হবে মধ্যে হতে হবে।

আপনি সত্যিই এই সব পার্সিং যা শুধু কাপড় complicates করতে হবে, যতদিন আপনি কি ধরনের ফর্ম্যাটে সার্ভার থেকে আশা সঙ্গে সামঞ্জস্যপূর্ণ হয় না।


1
আইসো ফরম্যাটের তারিখটি কীভাবে পাবেন? আমি ইউটিসি ফর্ম্যাটে তারিখটি পেয়ে যাচ্ছি ইউটিসি শেষের সাথে সংযুক্ত
দীপিকা

8
@ কলিন যে ভাষা নির্ভর। সি # তে আপনি এমন কোনও DateTimeবিষয় ফর্ম্যাট করতে পারেন .toString("o")যা উপরে দেখানো হিসাবে একটি ISO-8601 ফর্ম্যাট স্ট্রিং দেয়। msdn.microsoft.com/en-us/library/zdtaw1bw(v=vs.110).aspx জাভাস্ক্রিপ্টে এটি new Date().toISOString()বিকাশকারী.মোজিলা.আর.ইন-
ইউএস

98

এটি সর্বজনীন সমাধান:

function convertUTCDateToLocalDate(date) {
    var newDate = new Date(date.getTime()+date.getTimezoneOffset()*60*1000);

    var offset = date.getTimezoneOffset() / 60;
    var hours = date.getHours();

    newDate.setHours(hours - offset);

    return newDate;   
}

ব্যবহার:

var date = convertUTCDateToLocalDate(new Date(date_string_you_received));

স্থানীয় ক্লায়েন্টের উপর ভিত্তি করে তারিখটি প্রদর্শন করুন:

date.toLocaleString();

41
সমস্ত টাইম অঞ্চল নিয়ে কাজ করে না। GetTimeZoneOffset মিনিটের মধ্যে আসার পিছনে একটি ভাল কারণ আছে! ভৌগলিক তালিকা
20d.html

5
@siukurnin। তাই অদ্ভুত টাইমজোন পরিচালনা করতে newDate.setTime (তারিখ.সেটটাইম () + তারিখ.সেটটাইমজোনঅফসেট () * 60 * 1000)
গিলিয়াম গেন্ড্রে

18
newDate.setMinutes (ডেট.জেটমিনিটস () - ডেট.জেটটাইমজোনঅফসেট ()) যথেষ্ট হবে। পাশাপাশি সংশোধন ঘন্টাগুলিতে
লু 55

1
খুব সুন্দর এটি সম্ভবত 30 মিনিটের বাইরে কোনও সময় অঞ্চলের পক্ষে কাজ করতে পারে না? এটি পুরো ঘন্টা ধরে মনে হয়।
নিকজি

2
টাইমজোন শিফট যখন মধ্যরাতটি অতিক্রম করবে তখন এটিকেও সঠিকভাবে তারিখ নির্ধারণ করা মনে হয় না; সম্ভবত যেহেতু এটি কেবল সেটঅওয়ার্স ব্যবহার করছে যা তারিখকে প্রভাবিত করে না?
ইউনিফোনিক

37

আপনার ক্লায়েন্টটির (ইউটিসি) অফসেট (মিনিটের মধ্যে) পাওয়া উচিত:

var offset = new Date().getTimezoneOffset();

এবং তারপরে সার্ভার থেকে আপনি যে সময় পাবেন সংবাদদাতাকে যুক্ত বা বিয়োগ করতে হবে।

আশাকরি এটা সাহায্য করবে.


2
ডিএসটি সম্পর্কে কী?
ধনী

26

আমার জন্য উপরের সমাধানগুলি কাজ করে না।

আইই সহ ইউটিসি-র তারিখ-সময় রূপান্তর স্থানীয়ভাবে করা খুব জটিল। আমার জন্য, ওয়েব এপিআই থেকে তারিখের সময়টি '2018-02-15T05:37:26.007'এবং আমি স্থানীয় টাইমজোন অনুযায়ী রূপান্তর করতে চেয়েছিলাম তাই আমি জাভাস্ক্রিপ্টে কোডের নীচে ব্যবহার করেছি।

var createdDateTime = new Date('2018-02-15T05:37:26.007' + 'Z');

21

এই ফাংশনটি আপনার মাথায় রাখুন:

<script type="text/javascript">
function localize(t)
{
  var d=new Date(t+" UTC");
  document.write(d.toString());
}
</script>

তারপরে আপনার পৃষ্ঠার শরীরে প্রতিটি তারিখের জন্য নিম্নলিখিতটি তৈরি করুন:

<script type="text/javascript">localize("6/29/2011 4:52:48 PM");</script>

GMT এবং সময় অঞ্চলটি সরাতে নিম্নলিখিত লাইনটি পরিবর্তন করুন:

document.write(d.toString().replace(/GMT.*/g,""));


10

ভাল ফলাফল ছাড়াই এখানে পোস্ট করা আরও কয়েকজন চেষ্টা করার পরেও মনে হয়েছে এটি আমার পক্ষে কাজ করে:

convertUTCDateToLocalDate: function (date) {
    return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(),  date.getHours(), date.getMinutes(), date.getSeconds()));
}

এবং এটি স্থানীয় তারিখ থেকে ইউটিসি পর্যন্ত বিপরীত পথে কাজ করে:

convertLocalDatetoUTCDate: function(date){
    return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),  date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
}

1
ব্যবহার করার মতো কম কোড new Date(+date + date.getTimezoneOffset() * 6e4)। ;-)
রবজি

এটি কাজ করবে না, ইউটিসি-তে আমার সময় "2020-04-02T11: 09: 00", তাই সিঙ্গাপুর থেকে এটি চেষ্টা করুন, নতুন তারিখ (+ নতুন তারিখ ("2020-04-02T11: 09: 00") + নতুন তারিখ ( । "2020-04-02T11: 09: 00") getTimezoneOffset () * 6e4) ভুল সময় প্রদান
AhammadaliPK

এটি কাজ করেছে, নতুন তারিখ ("2020-04-02T11: 09: 00" + 'জেড');
আহমাদালিপিকে

10

এই ক্ষেত্রে 'ইউটিসি' এর শেষে সময় অঞ্চল যুক্ত করুন:

theDate = new Date( Date.parse('6/29/2011 4:52:48 PM UTC'));

এর পরে, সঠিক লোকলে তারিখটি প্রদর্শন করতে লোকাল () * ফাংশন পরিবারগুলি ব্যবহার করুন

theDate.toLocaleString();  // "6/29/2011, 9:52:48 AM"
theDate.toLocaleTimeString();  // "9:52:48 AM"
theDate.toLocaleDateString();  // "6/29/2011"

9

ম্যাট এর উত্তরটি এই সত্যটি হারিয়েছে যে দিবালোকের সঞ্চয় সময় তারিখ () এবং রূপান্তরিত হওয়ার তারিখের সময়ের মধ্যে আলাদা হতে পারে - আমার সমাধানটি এখানে:

    function ConvertUTCTimeToLocalTime(UTCDateString)
    {
        var convertdLocalTime = new Date(UTCDateString);

        var hourOffset = convertdLocalTime.getTimezoneOffset() / 60;

        convertdLocalTime.setHours( convertdLocalTime.getHours() + hourOffset ); 

        return convertdLocalTime;
    }

এবং ডিবাগারের ফলাফল:

UTCDateString: "2014-02-26T00:00:00"
convertdLocalTime: Wed Feb 26 2014 00:00:00 GMT-0800 (Pacific Standard Time)

9

এটি ইউটিসি এবং স্থানীয় সময়ের জন্য রূপান্তর করুন এবং বিপরীতে।

//Covert datetime by GMT offset 
//If toUTC is true then return UTC time other wise return local time
function convertLocalDateToUTCDate(date, toUTC) {
    date = new Date(date);
    //Local time converted to UTC
    console.log("Time: " + date);
    var localOffset = date.getTimezoneOffset() * 60000;
    var localTime = date.getTime();
    if (toUTC) {
        date = localTime + localOffset;
    } else {
        date = localTime - localOffset;
    }
    date = new Date(date);
    console.log("Converted time: " + date);
    return date;
}

3
দিবালোক সংরক্ষণের সময় কী ঘটেছিল। সিইটি সময় অঞ্চল
নভাসোবাইল

আমার উত্তর দেখুন @ stackoverflow.com/questions/6525538/...
Hulvej

9

এটি অ্যাডোরজান প্রিন্সের উত্তরের ভিত্তিতে একটি সরলিকৃত সমাধান:

function convertUTCDateToLocalDate(date) {
    var newDate = new Date(date);
    newDate.setMinutes(date.getMinutes() - date.getTimezoneOffset());
    return newDate;
}

ব্যবহার:

var date = convertUTCDateToLocalDate(new Date(date_string_you_received));

9 অক্টোবর 2017 এ কেন এটি নিম্নচালিত হয়েছিল? আমাকে আপনার মতামত বুঝতে সাহায্য করতে একটি মন্তব্য লিখুন।
হুহা

9

আপনি যদি ব্যবহার করতে আপত্তি করেন না moment.jsএবং আপনার সময়টি ইউটিসি তে থাকে তবে নিম্নলিখিতটি ব্যবহার করুন:

moment.utc('6/29/2011 4:52:48 PM').toDate();

যদি আপনার সময়টি ইউটিসি তে না হয় তবে অন্য কোনও লোকাল আপনার জানা থাকে, তবে নিম্নলিখিতগুলি ব্যবহার করুন:

moment('6/29/2011 4:52:48 PM', 'MM-DD-YYYY', 'fr').toDate();

যদি আপনার সময় ইতিমধ্যে স্থানীয় হয়, তবে নিম্নলিখিতগুলি ব্যবহার করুন:

moment('6/29/2011 4:52:48 PM', 'MM-DD-YYYY');

5

আমার কাছে সবচেয়ে সহজ লাগছিল ব্যবহার করা

datetime.setUTCHours(datetime.getHours());
datetime.setUTCMinutes(datetime.getMinutes());

(আমি ভেবেছিলাম প্রথম লাইন যথেষ্ট হতে পারে তবে টাইমজোনগুলি রয়েছে যা কয়েক ঘন্টার ভগ্নাংশে বন্ধ রয়েছে)


কারও কি এ নিয়ে কোন সমস্যা আছে? এটি আমার পক্ষে সেরা বিকল্প বলে মনে হচ্ছে। আমি একটি ইউটিসি স্ট্রিং নিয়েছিলাম যার শেষে "(ইউটিসি)" ছিল, এটি ব্যবহার করে একটি ডেট অবজেক্ট হিসাবে সেট আপ করেছিলাম new Date('date string')এবং তারপরে এই দুটি লাইন যুক্ত করা হয়েছে এবং মনে হয় এটি সম্পূর্ণরূপে একটি সার্ভারের ইউটিসি টাইমস্ট্যাম্প বন্ধ করে সময় নিয়ে ফিরে আসবে এটি ব্যবহারকারীর স্থানীয় সময়ের সাথে মিলে যায় এমন সমন্বয়গুলি। আমাকে এক ঘন্টার
টাইমজোনগুলির

আরও অনেক অপশন চেষ্টা করেছেন, তাদের কেউই কাজ করেননি, তবে এটি কাজ করছে
সামিরা কে

5

একটি জেএসওএন তারিখ স্ট্রিং (সি # তে ক্রমিকযুক্ত) "2015-10-13 টি 18: 58: 17" এর মতো দেখাচ্ছে।

কৌণিকভাবে, (হুলভেজের অনুসরণ করে) একটি localdateফিল্টার তৈরি করুন:

myFilters.filter('localdate', function () {
    return function(input) {
        var date = new Date(input + '.000Z');
        return date;
    };
})

তারপরে, স্থানীয় সময় প্রদর্শন করুন:

{{order.createDate | localdate | date : 'MMM d, y h:mm a' }}

3

YYYY-MM-DD hh:mm:ssবিন্যাস ব্যবহার :

var date = new Date('2011-06-29T16:52:48+00:00');
date.toString() // "Wed Jun 29 2011 09:52:48 GMT-0700 (PDT)"

YYYY-MM-DD hh:mm:ssফর্ম্যাট থেকে রূপান্তর করার জন্য , আপনার তারিখটি আইএসও 8601 ফর্ম্যাটটি অনুসরণ করে তা নিশ্চিত করুন ।

Year: 
    YYYY (eg 1997)    
Year and month: 
    YYYY-MM (eg 1997-07)
Complete date: 
    YYYY-MM-DD (eg 1997-07-16)
Complete date plus hours and minutes:
    YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)    
Complete date plus   hours, minutes and seconds:
    YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)    
Complete date plus hours, minutes, seconds and a decimal fraction of a second
    YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00) where:

YYYY = four-digit year
MM   = two-digit month (01=January, etc.)
DD   = two-digit day of month (01 through 31)
hh   = two digits of hour (00 through 23) (am/pm NOT allowed)
mm   = two digits of minute (00 through 59)
ss   = two digits of second (00 through 59)
s    = one or more digits representing a decimal fraction of a second
TZD  = time zone designator (Z or +hh:mm or -hh:mm)

গুরুত্বপূর্ণ বিষয়গুলি লক্ষ্য করুন

  1. আপনার অবশ্যই তারিখ এবং সময়কে একটি দ্বারা আলাদা করতে হবে T হবে, কিছু ব্রাউজারে কোনও স্থান কাজ করবে না
  2. +hh:mmটাইমজোন (উদাহরণস্বরূপ: 'ইউটিসি') স্ট্রিং ব্যবহার করে আপনাকে এই ফর্ম্যাটটি ব্যবহার করে সময় অঞ্চল নির্ধারণ করতে হবে অনেক ব্রাউজারে কাজ করবে না। +hh:mmইউটিসি টাইমজোন থেকে অফসেট উপস্থাপন করুন।

3

@Adorojan'sউত্তর প্রায় সঠিক। তবে অফসেট সংযোজন সঠিক নয় কারণ ব্রাউজারের তারিখটি জিএমটি এর আগে এবং তার বিপরীতে থাকলে অফসেট মানটি নেতিবাচক হবে। নীচে আমি যে সমাধানটি নিয়ে এসেছি এবং আমার জন্য নিখুঁতভাবে কাজ করছি তা নীচে দেওয়া হল:

// Input time in UTC
var inputInUtc = "6/29/2011 4:52:48";

var dateInUtc = new Date(Date.parse(inputInUtc+" UTC"));
//Print date in UTC time
document.write("Date in UTC : " + dateInUtc.toISOString()+"<br>");

var dateInLocalTz = convertUtcToLocalTz(dateInUtc);
//Print date in local time
document.write("Date in Local : " + dateInLocalTz.toISOString());

function convertUtcToLocalTz(dateInUtc) {
		//Convert to local timezone
		return new Date(dateInUtc.getTime() - dateInUtc.getTimezoneOffset()*60*1000);
}


3

আমার জন্য, এটি ভাল কাজ করে

if (typeof date === "number") {
  time = new Date(date).toLocaleString();
  } else if (typeof date === "string"){
  time = new Date(`${date} UTC`).toLocaleString();
}

2

আমি এটির উত্তর দিচ্ছি যদি কেউ এমন ফাংশন চান যা নির্দিষ্ট আইডি উপাদানটিতে রূপান্তরিত সময় প্রদর্শন করে এবং তারিখ বিন্যাসের স্ট্রিংটি yyyy-mm-dd প্রয়োগ করে এখানে তারিখ 1 স্ট্রিং এবং আইডিগুলি সেই সময় প্রদর্শিত হতে পারে আইডিটির আইডি।

function convertUTCDateToLocalDate(date1, ids) 
{
  var newDate = new Date();
  var ary = date1.split(" ");
  var ary2 = ary[0].split("-");
  var ary1 = ary[1].split(":");
  var month_short = Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
  newDate.setUTCHours(parseInt(ary1[0]));
  newDate.setUTCMinutes(ary1[1]);
  newDate.setUTCSeconds(ary1[2]);
  newDate.setUTCFullYear(ary2[0]);
  newDate.setUTCMonth(ary2[1]);
  newDate.setUTCDate(ary2[2]);
  ids = document.getElementById(ids);
  ids.innerHTML = " " + newDate.getDate() + "-" + month_short[newDate.getMonth() - 1] + "-" + newDate.getFullYear() + " " + newDate.getHours() + ":" + newDate.getMinutes() + ":" + newDate.getSeconds();
            }

আমি জানি যে উত্তরটি ইতিমধ্যে গৃহীত হয়েছে তবে আমি এখানে গুগলের কারণ পেয়েছি এবং আমি স্বীকৃত উত্তর থেকে অনুপ্রেরণা পেয়ে সমাধান করেছি যাতে কারও প্রয়োজন হলে আমি কেবল এটি ভাগ করতে চাই না।


1

@ ডিজিটালবাথ উত্তরের উপর ভিত্তি করে, ইউটিসি টাইমস্ট্যাম্পটি ধরার জন্য এবং একটি নির্দিষ্ট ডিওএম উপাদানটিতে স্থানীয় সময় প্রদর্শন করার জন্য একটি ছোট ফাংশন (এই শেষ অংশের জন্য jQuery ব্যবহার করে):

https://jsfiddle.net/moriz/6ktb4sv8/1/

<div id="eventTimestamp" class="timeStamp">
   </div>
   <script type="text/javascript">
   // Convert UTC timestamp to local time and display in specified DOM element
   function convertAndDisplayUTCtime(date,hour,minutes,elementID) {
    var eventDate = new Date(''+date+' '+hour+':'+minutes+':00 UTC');
    eventDate.toString();
    $('#'+elementID).html(eventDate);
   }
   convertAndDisplayUTCtime('06/03/2015',16,32,'eventTimestamp');
   </script>

0

আমি একটি দুর্দান্ত ছোট স্ক্রিপ্ট লিখেছি যা একটি ইউটিসি যুগের সময় নেয় এবং এটি ক্লায়েন্ট সিস্টেমের টাইমজোনকে রূপান্তর করে এবং এটি ডি / এম / ওয়াইএইচ: ফেরত দেয়: i: s (পিএইচপি তারিখের ফাংশনের মতো) ফর্ম্যাটটিতে:

getTimezoneDate = function ( e ) {

    function p(s) { return (s < 10) ? '0' + s : s; }        

    var t = new Date(0);
    t.setUTCSeconds(e);

    var d = p(t.getDate()), 
        m = p(t.getMonth()+1), 
        Y = p(t.getFullYear()),
        H = p(t.getHours()), 
        i = p(t.getMinutes()), 
        s = p(t.getSeconds());

    d =  [d, m, Y].join('/') + ' ' + [H, i, s].join(':');

    return d;

};

0

আপনি মুহুর্তগুলি ব্যবহার করতে পারেন , moment(date).format()সর্বদা স্থানীয় তারিখে ফলাফল দেবেন ।

বোনাস , আপনি যে কোনও ভাবে ফর্ম্যাট করতে পারেন। যেমন যেমন

moment().format('MMMM Do YYYY, h:mm:ss a'); // September 14th 2018, 12:51:03 pm
moment().format('dddd');                    // Friday
moment().format("MMM Do YY"); 

আরও তথ্যের জন্য আপনি মোমেন্ট জেএস ওয়েবসাইটটি উল্লেখ করতে পারেন


0

আপনি moment.js ব্যবহার করে এটি সম্পন্ন করতে পারেন ফাইল ।

এর সহজ আপনি স্রেফ টাইমজোনটির স্থান উল্লেখ করেছেন।

উদাহরণ: আপনি যদি নিজের তারিখের সময়কে এশিয়া / কলকাতা টাইমজোনতে রূপান্তর করতে চান তবে আপনাকে কেবল মুহুর্তের থেকে প্রাপ্ত সময় অঞ্চলটির নাম উল্লেখ করতে হবে j

var UTCDateTime="Your date obtained from UTC";
var ISTleadTime=(moment.tz(UTCDateTime, "Africa/Abidjan")).tz("Asia/Kolkata").format('YYYY-MM-DD LT');


0

আমি একটি ফাংশন তৈরি করেছি যা সমস্ত সময় অঞ্চলকে স্থানীয় সময়ে রূপান্তর করে।

আমি getTimezoneOffset () ব্যবহার করিনি, কারণ এটি যথাযথ অফসেট মান দেয় না

প্রয়োজনীয়তা:

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"

0

আমার ক্ষেত্রে, আমাকে সেকেন্ডের মধ্যে তারিখের পার্থক্যটি খুঁজে পেতে হয়েছিল। তারিখটি একটি ইউটিসি তারিখের স্ট্রিং ছিল, তাই আমি এটিকে স্থানীয় তারিখের অবজেক্টে রূপান্তর করেছি। এটি আমিই করেছি:

let utc1 = new Date();
let utc2 = null;
const dateForCompare = new Date(valueFromServer);
dateForCompare.setTime(dateForCompare.getTime() - dateForCompare.getTimezoneOffset() * 
 60000);
utc2 = dateForCompare;

const seconds = Math.floor(utc1 - utc2) / 1000;

-1
function getUTC(str) {
    var arr = str.split(/[- :]/);
    var utc = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]);
    utc.setTime(utc.getTime() - utc.getTimezoneOffset()*60*1000)
    return utc;
}

অন্যদের জন্য যারা যান - কোনও ইউটিসি স্ট্রিং থেকে স্থানীয় তারিখের অবজেক্ট পেতে এই ফাংশনটি ব্যবহার করুন, তাদের ডিএসটি যত্ন নিতে হবে এবং আইই, আইফোন ইত্যাদিতে কাজ করবে

আমরা স্ট্রিংটি বিভক্ত করেছি (যেহেতু কিছু ব্রাউজারে জেএস ডেট পার্সিং সমর্থিত নয়) আমরা ইউটিসি থেকে পার্থক্য পাই এবং এটি ইউটিসি সময় থেকে বিয়োগ করি, যা আমাদের স্থানীয় সময় দেয়। যেহেতু অফসেট রিটার্ন গণনা করা হয় ডিএসটি দিয়ে গণনা করা হয় (আমি ভুল হলে আমাকে সংশোধন করি), সুতরাং এটি সেই সময়টিকে পরিবর্তনশীল "ইউটিসি" তে ফিরে আসবে। শেষ পর্যন্ত তারিখ অবজেক্টটি ফিরিয়ে দিন।


-1

কৌণিক ক্ষেত্রে আমি বেনের উত্তরটি এইভাবে ব্যবহার করেছি:

$scope.convert = function (thedate) {
    var tempstr = thedate.toString();
    var newstr = tempstr.toString().replace(/GMT.*/g, "");
    newstr = newstr + " UTC";
    return new Date(newstr);
};

সম্পাদনা করুন: কৌণিক 1.3.0 ইউটিসি সমর্থন তারিখের ফিল্টারটিতে যুক্ত করেছে, আমি এটি এখনও ব্যবহার করি নি তবে এটি আরও সহজ হওয়া উচিত, এখানে ফর্ম্যাটটি রয়েছে:

{{ date_expression | date : format : timezone}}

কৌণিক 1.4.3 তারিখের API

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.