แปลงเวลาวันที่ UTC เป็นเวลาท้องถิ่น


337

จากเซิร์ฟเวอร์ฉันได้รับตัวแปร datetime ในรูปแบบนี้6/29/2011 4:52:48 PMและมันอยู่ในเวลา UTC ฉันต้องการแปลงเป็นเวลาเบราว์เซอร์ของผู้ใช้ปัจจุบันโดยใช้ JavaScript

วิธีนี้สามารถทำได้โดยใช้ JavaScript หรือ jQuery



1
ระวัง. นั่นคือรูปแบบวันที่แปลก ๆ ดังนั้นอย่าลืมระบุในรูปแบบใดก็ตามที่คุณใช้ ถ้าเป็นไปได้ให้เซิร์ฟเวอร์ส่งวันที่ในรูปแบบ ISO
Michael Scheper

คำตอบ:


404

ต่อท้าย 'UTC' กับสตริงก่อนที่จะแปลงเป็นวันที่ใน javascript:

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
ฟังก์ชั่น localizeDateStr (date_to_convert_str) {var date_to_convert = ใหม่วันที่ (date_to_convert_str); var local_date = new Date (); date_to_convert.setHours (date_to_convert.getHours () + local_date.getTimezoneOffset ()); return date_to_convert.toString (); }
แมตต์

4
@matt offSet ส่งกลับนาทีไม่ใช่ชั่วโมงคุณต้องหารด้วย 60
bladefist

50
นี่ถือว่าส่วนวันที่ของสตริงเป็นไปตามมาตรฐานสหรัฐอเมริกา mm / dd / YYYY ซึ่งไม่ชัดเจนในกรณีในยุโรปและในส่วนอื่น ๆ ของโลก
AsGoodAsItGets

7
@digitalbath ใช้งานได้บน Chrome แต่ไม่สามารถใช้งานบน Firefox
Ganesh Satpute


138

ในมุมมองของฉันเซิร์ฟเวอร์ควรในกรณีทั่วไปกลับ datetime ในมาตรฐาน ISO 8601

ข้อมูลเพิ่มเติมที่นี่:

ในกรณีนี้เซิร์ฟเวอร์จะคืนค่า'2011-06-29T16:52:48.000Z'ซึ่งจะดึงข้อมูลโดยตรงไปยังวัตถุ JS Date

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

localDateจะอยู่ในเวลาท้องถิ่นที่เหมาะสมซึ่งในกรณีของฉันจะเป็นสองชั่วโมงต่อมา (เวลา DK)

คุณจริงๆไม่จำเป็นต้องทำทุกแยกนี้ซึ่งก็มีความซับซ้อนสิ่งตราบใดที่คุณมีความสอดคล้องกับสิ่งที่รูปแบบที่คาดหวังจากเซิร์ฟเวอร์


1
วิธีรับวันที่จัดรูปแบบ iso ฉันได้รับวันที่ในรูปแบบ UTC กับ UTC ต่อท้าย
Deepika

8
@Colin ขึ้นอยู่กับภาษา ใน C # คุณสามารถจัดรูปแบบDateTimeวัตถุ.toString("o")ที่ส่งคืนสตริงที่จัดรูปแบบ ISO-8601 ตามที่แสดงด้านบน msdn.microsoft.com/en-us/library/zdtaw1bw(v=vs.110).aspxใน JavaScript new Date().toISOString()มัน developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/
......

99

นี่เป็นวิธีการแก้ปัญหาสากล:

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 อยู่ในไม่กี่นาที! geographylists.com/list20d.html
siukurnin

5
@siukurnin เพื่อจัดการเขตเวลาแปลกใช้ newDate.setTime (date.getTime () + date.getTimezoneOffset () * 60 * 1,000)
Guillaume Gendre

18
newDate.setMinutes (date.getMinutes () - date.getTimezoneOffset ()) เพียงพอแล้ว ในการแก้ไขชั่วโมงเช่นกัน
Lu55

1
ค่อนข้างแน่ใจว่านี่อาจใช้งานไม่ได้กับเขตเวลาใดที่อยู่ห่างออกไป 30 นาที ดูเหมือนว่าจะเป็นรอบทั้งชั่วโมง
NickG

2
สิ่งนี้ดูเหมือนจะไม่ได้ตั้งค่าวันที่อย่างถูกต้องเมื่อการเลื่อนเขตเวลาข้ามเที่ยงคืน อาจเป็นเพราะการใช้ setHours ซึ่งไม่ส่งผลกระทบต่อวันที่หรือไม่
Uniphonic

37

คุณควรจะได้รับ (UTC) offset (เป็นนาที) ของลูกค้า:

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

จากนั้นทำการเพิ่มหรือลบตัวแทนที่สอดคล้องกับเวลาที่คุณได้รับจากเซิร์ฟเวอร์

หวังว่านี่จะช่วยได้


2
แล้ว DST ล่ะ?
รวย

26

สำหรับฉันการแก้ปัญหาข้างต้นไม่ได้ผล

ด้วย IE การแปลงวันที่และเวลา UTC เป็น Local นั้นยุ่งยากเล็กน้อย สำหรับฉันวันที่และเวลาจากเว็บ API คือ'2018-02-15T05:37:26.007'และฉันต้องการแปลงตามเขตเวลาท้องถิ่นดังนั้นฉันจึงใช้โค้ดด้านล่างใน JavaScript

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,""));

20

สิ่งนี้ใช้ได้กับฉัน:

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

10

หลังจากลองอีกสองสามคนโพสต์ที่นี่โดยไม่มีผลลัพธ์ที่ดีสิ่งนี้ดูเหมือนจะใช้ได้สำหรับฉัน:

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

และนี่ใช้งานได้ในทางตรงกันข้ามจาก Local Date ถึง UTC:

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)รหัสน้อยที่จะใช้ ;-)
RobG

มันใช้งานไม่ได้เวลาของฉันใน utc คือ "2020-04-02T11: 09: 00" ลองใช้สิ่งนี้จากสิงคโปร์วันที่ใหม่ (+ วันที่ใหม่ ("2020-04-02T11: 09: 00") + วันที่ใหม่ ( "2020-04-02T11: 09: 00"). getTimezoneOffset () * 6e4) ให้เวลาผิด
AhammadaliPK

สิ่งนี้ทำงานได้, วันที่ใหม่ ("2020-04-02T11: 09: 00" + 'Z');
AhammadaliPK

10

เพิ่มเขตเวลาในตอนท้ายในกรณีนี้ 'UTC':

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

หลังจากนั้นให้ใช้ตระกูลtoLocale () *เพื่อแสดงวันที่ในภาษาที่ถูกต้อง

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

9

คำตอบของ Matt หายไปจากความจริงที่ว่าเวลาออมแสงอาจแตกต่างกันระหว่าง Date () และเวลา Date ที่ต้องการแปลง - นี่คือคำตอบของฉัน:

    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

ใช้สิ่งนี้สำหรับ UTC และเวลาท้องถิ่นและในทางกลับกัน

//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
เกิดอะไรขึ้นในเวลากลางวัน เขตเวลา CET
NovusMobile

ดูคำตอบของฉัน @ stackoverflow.com/questions/6525538/…
Hulvej

9

นี่เป็นวิธีที่ง่ายขึ้นอยู่กับคำตอบของหลักการ Adorjan:

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 กรุณาเขียนความคิดเห็นเพื่อช่วยให้เข้าใจความคิดเห็นของคุณ
huha

9

ในกรณีที่คุณไม่ได้ใช้งานmoment.jsและเวลาของคุณอยู่ใน UTC เพียงใช้สิ่งต่อไปนี้:

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

หากเวลาของคุณไม่ได้อยู่ใน utc แต่เป็นสถานที่อื่นที่คุณรู้จักให้ใช้สิ่งต่อไปนี้:

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());

(ฉันคิดว่าบรรทัดแรกอาจเพียงพอ แต่มีเขตเวลาซึ่งปิดในเวลาไม่กี่ชั่วโมง)


ใครบ้างมีปัญหากับเรื่องนี้? ดูเหมือนจะเป็นตัวเลือกที่ดีที่สุดสำหรับฉัน ฉันใช้สตริง UTC ซึ่งมี "(UTC)" ที่ส่วนท้ายของมันตั้งค่าเป็นวัตถุวันที่ใช้new Date('date string')แล้วเพิ่มสองบรรทัดนี้และดูเหมือนว่าจะกลับมาพร้อมกับเวลาตามเวลาหมดเวลา UTC ของเซิร์ฟเวอร์อย่างสมบูรณ์ ด้วยการปรับเปลี่ยนเพื่อให้ตรงกับเวลาท้องถิ่นของผู้ใช้ ฉันต้องกังวลเกี่ยวกับเขตเวลาเศษส่วนแปลก ๆ ของชั่วโมงเช่นกัน ... ไม่แน่ใจว่ามันจะเก็บไว้อย่างสมบูรณ์แบบตลอดเวลา ...
tylerl

ลองใช้ตัวเลือกอื่น ๆ มากมายไม่สามารถใช้งานได้ แต่ใช้งานได้
Sameera K

5

สตริงวันที่ JSON (ต่อเนื่องเป็น C #) ดูเหมือนว่า "2015-10-13T18: 58: 17"

ในเชิงมุม (ติดตาม Hulvej) สร้าง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รูปแบบให้แน่ใจว่าวันที่ของคุณเป็นไปตามรูปแบบมาตรฐาน ISO 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. คุณต้องแยกวันและเวลาโดย a T, ช่องว่างจะไม่ทำงานในบางเบราว์เซอร์
  2. คุณต้องตั้งค่าเขตเวลาโดยใช้รูปแบบนี้+hh:mmโดยใช้สตริงสำหรับเขตเวลา (เช่น: 'UTC') จะไม่ทำงานในเบราว์เซอร์จำนวนมาก +hh:mmแสดงถึงการชดเชยจากเขตเวลา UTC

3

@Adorojan'sคำตอบนั้นถูกต้องเกือบ แต่การเพิ่มออฟเซตไม่ถูกต้องเนื่องจากค่าออฟเซ็ตจะเป็นค่าลบหากวันที่เบราว์เซอร์ก่อน GMT และในทางกลับกัน ด้านล่างเป็นวิธีแก้ปัญหาที่ฉันมาด้วยและทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน:

// 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

ฉันตอบคำถามนี้ถ้าใครต้องการฟังก์ชั่นที่แสดงเวลาที่แปลงไปยังองค์ประกอบ id ที่ระบุและใช้สตริงรูปแบบวันที่ yyyy-mm-dd ที่นี่ date1 คือสตริงและรหัสเป็นรหัสขององค์ประกอบที่เวลาจะแสดง

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();
            }

ฉันรู้ว่าคำตอบนั้นได้รับการยอมรับแล้ว แต่ฉันมาที่นี่เพราะสาเหตุของ google และฉันแก้ปัญหาด้วยการได้รับแรงบันดาลใจจากคำตอบที่ได้รับการยอมรับดังนั้นฉันจึงต้องการแบ่งปันมันหากมีคนต้องการ


1

ตามคำตอบ @digitalbath นี่คือฟังก์ชั่นขนาดเล็กเพื่อคว้า UTC ประทับเวลาและแสดงเวลาท้องถิ่นในองค์ประกอบ DOM ที่กำหนด (ใช้ 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

ฉันเขียนสคริปต์เล็กน้อยที่ดีที่ใช้เวลา UTC และแปลงเขตเวลาระบบลูกค้าและส่งคืนในรูปแบบ d / m / YH: i: s (เช่นฟังก์ชั่นวันที่ของ PHP):

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

คุณสามารถใช้momentjs , 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"); 

สำหรับรายละเอียดเพิ่มเติมคุณสามารถดูเว็บไซต์ Moment js


0

คุณสามารถทำได้โดยใช้ไฟล์moment.js

มันง่ายมากที่คุณเพิ่งพูดถึงสถานที่ของเขตเวลา

ตัวอย่าง: หากคุณต้องการแปลงวันที่และเวลาเป็น Asia / Kolkata Timezoneคุณต้องระบุชื่อของเขตเวลาที่ได้รับจากmoment.js

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

ในกรณีของฉันฉันต้องค้นหาความแตกต่างของวันที่ในไม่กี่วินาที วันที่เป็นสตริงวันที่ UTC ดังนั้นฉันจึงแปลงเป็นวัตถุวันที่ท้องถิ่น นี่คือสิ่งที่ฉันทำ:

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;
}

สำหรับผู้อื่นที่เข้าชม - ใช้ฟังก์ชันนี้เพื่อรับวัตถุวันที่ท้องถิ่นจากสตริง UTC ควรดูแล DST และจะทำงานบน IE, IPhone เป็นต้น

เราแยกสตริง (เนื่องจากการแยกวิเคราะห์ JS วันไม่ได้รับการสนับสนุนในบางเบราว์เซอร์) เราได้รับความแตกต่างจาก UTC และลบออกจากเวลา UTC ซึ่งให้เวลาท้องถิ่นแก่เรา เนื่องจากการคืนค่าออฟเซ็ตถูกคำนวณด้วย DST (แก้ไขฉันถ้าฉันผิด) ดังนั้นมันจะตั้งเวลานั้นกลับในตัวแปร "utc" ในที่สุดก็กลับวัตถุวันที่


-1

ในเชิงมุมฉันใช้คำตอบของเบนด้วยวิธีนี้

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

แก้ไข: Angular 1.3.0 เพิ่ม UTC รองรับตัวกรองวันที่ฉันยังไม่ได้ใช้ แต่ควรจะง่ายกว่านี่คือรูปแบบ:

{{ date_expression | date : format : timezone}}

API วันที่ 1.4.3 เชิงมุม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.