Lấy phần bù múi giờ của khách hàng bằng JavaScript


615

Làm cách nào tôi có thể thu thập thông tin múi giờ của khách truy cập? Tôi cần múi giờ, cũng như giờ bù giờ GMT.


3
Bây giờ tôi đang tìm ra vấn đề tương tự. Đây là một cách tiếp cận thú vị.
Tamás Pap

31
Tiêu đề yêu cầu múi giờ, trong khi văn bản yêu cầu bù GMT. Đây là 2 điều khác nhau. Một múi giờ bao gồm thông tin về DST, utc offset không. Một múi giờ có tên và lịch sử, bù lại không. Đề nghị chỉnh sửa tiêu đề thành "Lấy phần bù gmt của máy khách trong JS".
citykid

Tôi cần múi giờ. Phần bù GMT cũng sẽ hữu ích.
DaveWalley

9
Các câu trả lời ở đây tập trung chủ yếu vào . Đối với múi giờ xem câu trả lời này . Xem "Múi giờ! = Offset" trong wiki thẻ múi giờ .
Matt Johnson-Pint

7
Bạn có được múi giờ chính xác bằng cách sử dụng Intl.DateTimeFormat () .olveOptions (). TimeZone
Mangesh Mandavgane

Câu trả lời:


594

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

Độ lệch múi giờ là chênh lệch, tính bằng phút, giữa UTC và giờ địa phương. Lưu ý rằng điều này có nghĩa là phần bù là dương nếu múi giờ địa phương đứng sau UTC và âm nếu nó ở phía trước. Ví dụ: nếu múi giờ của bạn là UTC + 10 (Giờ chuẩn miền đông Úc), -600 sẽ được trả về. Thời gian tiết kiệm ánh sáng ban ngày ngăn giá trị này không đổi ngay cả đối với một miền nhất định

Lưu ý rằng không phải tất cả các múi giờ đều được bù theo cả giờ: ví dụ: Newfoundland là UTC trừ 3h 30m (bỏ thời gian tiết kiệm ánh sáng ban ngày khỏi phương trình).


42
@abernier Là tuyên bố về sự getTimezoneOffsetkhông chính xác có hiệu lực? Bài viết mà bạn đang đề cập là ngày tháng 6 năm 2007 và không có chi tiết về cách thức chức năng này không chính xác. Và trong thực tế, thư viện jsTimezoneDetectbạn chỉ sử dụng getTimezoneOffsetchính nó.
Mike

5
@abernier Đó là một tiêu chuẩn kể từ ES 1, vì vậy tôi chắc chắn rằng mọi vấn đề triển khai có thể được khắc phục ngay bây giờ, ý tôi là, đó là một bài viết 7 năm tuổi.
LasagnaAndroid

49
var hrs = -(new Date().getTimezoneOffset() / 60) để được bù đắp theo giờ thường được sử dụng
Edwin Daniels

6
Có vẻ như nó không xem xét thời gian tiết kiệm ánh sáng ban ngày
Shahdat

21
timezone! =utc offset
uốn cong

483

Sử dụng một phần bù để tính toán múi giờ là một cách tiếp cận sai và bạn sẽ luôn gặp phải vấn đề. Múi giờ và quy tắc tiết kiệm ánh sáng ban ngày có thể thay đổi nhiều lần trong một năm và thật khó để theo kịp các thay đổi.

Để lấy múi giờ IANA của hệ thống bằng JavaScript, bạn nên sử dụng

console.log(Intl.DateTimeFormat().resolvedOptions().timeZone)

Tính đến tháng 9 năm 2019, điều này hoạt động trong 95% trình duyệt được sử dụng trên toàn cầu .

Thông tin tương thích cũ

ecma-402 / 1.0 nói rằng timeZonecó thể không xác định nếu không được cung cấp cho hàm tạo. Tuy nhiên, dự thảo trong tương lai (3.0) đã khắc phục vấn đề đó bằng cách thay đổi múi giờ mặc định của hệ thống.

Trong phiên bản API quốc tế hóa ECMAScript này, thuộc timeZonetính sẽ không được xác định nếu không có thuộc timeZonetính nào được cung cấp trong đối tượng tùy chọn được cung cấp cho hàm Intl.DateTimeFormat tạo . Tuy nhiên, các ứng dụng không nên dựa vào điều này, vì các phiên bản trong tương lai có thể trả về giá trị Chuỗi xác định múi giờ hiện tại của môi trường máy chủ.

trong ecma-402 / 3.0 vẫn còn trong bản nháp, nó đã đổi thành

Trong phiên bản API quốc tế hóa ECMAScript 2015 này, thuộc timeZonetính sẽ là tên của múi giờ mặc định nếu không có thuộc timeZonetính nào được cung cấp trong đối tượng tùy chọn được cung cấp cho nhà Intl.DateTimeFormatxây dựng. Phiên bản trước để lại timeZonetài sản không xác định trong trường hợp này.


17
Đây là câu trả lời duy nhất để có được múi giờ, mà một số người dùng có thể cần thay vì chỉ bù. Vì vậy, như một bản cập nhật trong năm 2016-09, Intl hoạt động trên hầu hết các trình duyệt hiện đại nhưng không phải Safari. Đối với trình duyệt đó, có một dự phòng javascript chính xác hợp lý ở đây - pellepim.bitbucket.org/jstz
user2085368

6
Xác minh rằng điều này bây giờ dường như hoạt động trong Safari. (Sử dụng phiên bản 10.0)
BadPirate

2
Sẽ tốt hơn nếu điều này làm việc trong tất cả các trình duyệt hiện đại. Tuy nhiên IE11 và Firefox mới nhất đều trả về không xác định cho thuộc tính timeZone.
Haprog

7
Tôi đã thử nghiệm ngay bây giờ với Chrome 58, Edge 40 và Firefox 53 - tất cả đều hoạt động. Nó không hoạt động với IE 11, tôi đã không kiểm tra Opera.
Suma

8
Phải mất một thời gian tôi mới tìm thấy danh sách các múi giờ được API này trả về. Đây là: en.wikipedia.org/wiki/List_of_tz_database_time_zones
Xavier Poinas

123

Tôi nhận ra câu trả lời này hơi lạc đề nhưng tôi tưởng tượng nhiều người trong chúng ta đang tìm kiếm câu trả lời cũng muốn định dạng múi giờ để hiển thị và có lẽ cũng viết tắt tên khu vực. Vì vậy, ở đây nó đi ...

Nếu bạn muốn múi giờ của máy khách được định dạng độc đáo, bạn có thể dựa vào phương thức Date.toString của JavaScript và thực hiện:

var split = new Date().toString().split(" ");
var timeZoneFormatted = split[split.length - 2] + " " + split[split.length - 1];

Điều này sẽ cung cấp cho bạn "GMT-0400 (EST)" chẳng hạn, bao gồm cả phút múi giờ khi áp dụng.

Ngoài ra, với regex, bạn có thể trích xuất bất kỳ phần mong muốn nào:

Đối với "GMT-0400 (EDT)":

new Date().toString().match(/([A-Z]+[\+-][0-9]+.*)/)[1]

Đối với "GMT-0400":

new Date().toString().match(/([A-Z]+[\+-][0-9]+)/)[1]

Chỉ với "EDT":

new Date().toString().match(/\(([A-Za-z\s].*)\)/)[1]

Chỉ với "-0400":

new Date().toString().match(/([-\+][0-9]+)\s/)[1]

Tham chiếu Date.toString: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toString


4
Bị hỏng với Chrome vì nó gắn tên của múi giờ. Không sử dụng split.length mà thay vào đó là một hằng số split[4] + " " + split[5]?!
Barshe Roussy

4
Điều này cũng không hoạt động trong (ngạc nhiên, ngạc nhiên) IE. Tôi vừa thực hiện một giao diện điều khiển của đối tượng Date đã chia. Nó giống nhau trong Chrome, Firefox và Safari, nhưng khác nhau ở IE. Vì vậy, bạn cũng không thể dựa vào các chỉ số không đổi. Thứ Hai 02/12/2013 10:22:50 GMT-0500 (EST): Chrome, FF, Safari; Thứ Hai ngày 2 tháng 12 10:22:50 EST 2013: IE10
adimauro

1
Trời ạ, cảm ơn bạn! Tôi đã nhảy qua các vòng cố gắng hiển thị múi giờ của trình duyệt ..... ew Date (). ToString (). Match (/ ([AZ] + [\ + -] [0-9] +. *) /) [ 1] chính xác là những gì tôi cần!
KiwiSunGoddess

1
Điều này không hoạt động. Đối với tôi splitcó chứa: ["Mon", "Mar", "13", "2017", "14:05:22", "GMT-0400", "(Eastern", "Daylight", "Time)"]vì vậy kết quả làDaylight Time)
DLeh

7
Đây thực sự không phải là một ý tưởng tốt, đại diện thực tế của thời gian JS sau khi bạn làm new Date().toString()hoàn toàn phụ thuộc vào cài đặt ngôn ngữ của bạn. Mong đợi kết quả đầu ra của khách hàng khác giống với đầu ra của bạn là một ý tưởng rất tồi.
Bạch tuộc

71

Nó đã được trả lời làm thế nào để lấy phần bù trong vài phút dưới dạng số nguyên, nhưng trong trường hợp bất kỳ ai cũng muốn phần bù GMT cục bộ dưới dạng chuỗi, ví dụ "+1130":

function pad(number, length){
    var str = "" + number
    while (str.length < length) {
        str = '0'+str
    }
    return str
}

var offset = new Date().getTimezoneOffset()
offset = ((offset<0? '+':'-')+ // Note the reversed sign!
          pad(parseInt(Math.abs(offset/60)), 2)+
          pad(Math.abs(offset%60), 2))

1
Bạn cần thay thế phần đệm thứ 1 bằng pad(parseInt(Math.abs(offset/60)), 2)để làm cho đúng ... nếu không, bạn có thể sẽ nhận được +5.530 như trong trường hợp của tôi ... tôi không chắc liệu sàn toán học v.v ... sẽ tốt hơn ở đây hay không .... nhưng điều này ít nhất mang lại cho tôi 0530 như mong đợi
Abhinav Singh

Chính xác những gì tôi đã tìm kiếm. Cảm ơn !
viết mã

điều này sẽ cho kết quả chính xác: this.pad (Math.floor ((Math.abs (offset / 60))), 2)
Vivek

Thay vì sử dụng chức năng pad của bạn, tôi thấy việc này dễ dàng hơn: offset = (offset <0? "+": "-") + ("0000" + parseInt ((Math.abs (offset / 60)))) .slice (-4)
flurbius

67

Bạn có thể dùng:

khoảnh khắc múi giờ

<script src="moment.js"></script>
<script src="moment-timezone-with-data.js"></script>

// retrieve timezone by name (i.e. "America/Chicago")
moment.tz.guess();

Phát hiện múi giờ của trình duyệt khá khó khăn để có được quyền, vì có rất ít thông tin được cung cấp bởi trình duyệt.

Khoảnh khắc Timezone sử dụng Date.getTimezoneOffset()Date.toString()trong một số khoảnh khắc trong năm hiện tại để thu thập càng nhiều thông tin về môi trường trình duyệt càng tốt. Sau đó, nó so sánh thông tin đó với tất cả dữ liệu múi giờ được tải và trả về kết quả khớp gần nhất. Trong trường hợp quan hệ, múi giờ với thành phố có dân số lớn nhất được trả lại.

console.log(moment.tz.guess()); // America/Chicago

12
Đây phải là câu trả lời được chấp nhận. Đây là cái duy nhất cung cấp tên múi giờ thực tế chứ không phải bù. Hãy nhớ rằng bù múi giờ có thể được bắt nguồn từ tên, điều ngược lại là không đúng. Do DST và các khoản phụ khác, nhiều múi giờ có thể có cùng mức bù vào một số ngày cụ thể trong năm.
Romain G

1
Có một giải pháp tự nhiên cho điều này bây giờ - các API Intl . Mặc dù Moment.js là một thư viện tuyệt vời vào thời đó, có những lựa chọn thay thế nhỏ hơn nhiều hiện nay ( dayjs , date-fns ). Khoảnh khắc thật lớn ; xin vui lòng không giới thiệu nó cho các ứng dụng khách.
Dan Dascalescu 17/03/19

43

Tôi đã viết một chức năng trong dự án của tôi, mà trả về múi giờ trong hh:mmđịnh dạng. Tôi hy vọng điều này có thể giúp ai đó:

function getTimeZone() {
    var offset = new Date().getTimezoneOffset(), o = Math.abs(offset);
    return (offset < 0 ? "+" : "-") + ("00" + Math.floor(o / 60)).slice(-2) + ":" + ("00" + (o % 60)).slice(-2);
}

// Outputs: +5:00

Fiddle làm việc


1
Cảm ơn bạn! Đây là những gì tôi cần!
Jeremy Moritz

15

Một lớp lót cung cấp cả phần bù và múi giờ chỉ đơn giản là gọi toTimeString () trên một đối tượng Date mới. Từ MDN:

Các toTimeString()phương thức trả về phần thời gian của một đối tượng ngày ở dạng có thể đọc được của con người trong tiếng Anh-Mỹ.

Điều hấp dẫn là múi giờ không ở định dạng IANA tiêu chuẩn; nó thân thiện với người dùng hơn một chút so với định dạng IANA "lục địa / thành phố" . Dùng thử:

console.log(new Date().toTimeString().slice(9));
console.log(Intl.DateTimeFormat().resolvedOptions().timeZone);
console.log(new Date().getTimezoneOffset() / -60);

Ở California ngay bây giờ, toTimeString()trả về Pacific Daylight Timetrong khi API quốc tế trả về America/Los_Angeles. Ở Colombia, bạn sẽ nhận được Colombia Standard Time, so với America/Bogota.

Lưu ý rằng nhiều câu trả lời khác cho câu hỏi này cố gắng có được thông tin tương tự bằng cách gọi Date.toString (). Cách tiếp cận đó không đáng tin cậy, như MDN giải thích :

Trường hợp ngày đề cập đến một thời điểm cụ thể. Gọi toString () sẽ trả về ngày được định dạng ở dạng người có thể đọc được bằng tiếng Anh Mỹ. [...] Đôi khi, mong muốn có được chuỗi chuỗi thời gian; một điều như vậy có thể được thực hiện với toTimeString()phương pháp.

Các toTimeString()phương pháp đặc biệt hữu ích bởi vì công cụ phù hợp thực hiện ECMA-262 có thể khác nhau trong chuỗi thu được từ toString()cho Datecác đối tượng, như định dạng là thực hiện phụ thuộc; phương pháp cắt chuỗi đơn giản có thể không tạo ra kết quả nhất quán trên nhiều động cơ.


13

cố gắng getTimezoneOffset()của các Dateđối tượng:

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

Phương pháp này trả về độ lệch múi giờ tính bằng phút, chênh lệch giữa GMT và giờ địa phương tính bằng phút.



7

Với khoảnh khắc.js :

moment().format('zz');

6
zzzđã bị phản đối như của 1.6.0 see momentjs.com/docs/#/displaying/format
MrUpsidown

3
@MrUpsidown bây giờ ZZZ
brauliobo

4
@bAFiobo Các tham số này không trả về cùng một thứ. z và zz trả về múi giờ, ví dụ: CST, nhưng Z và ZZ trả về phần bù, ví dụ -0600.
Luca Spiller

Chương trình tài liệu mới nhất .zoneAbbr()đã thay thế zzz. Xem tài liệu tại đây
tabish89

1
Mặc dù Moment.js là một thư viện tuyệt vời vào thời đó, có những lựa chọn thay thế nhỏ hơn nhiều hiện nay ( dayjs , date-fns ). Khoảnh khắc thật lớn ; xin vui lòng không giới thiệu nó cho các ứng dụng khách.
Dan Dascalescu 17/03/19

6

Với , bạn có thể tìm thấy múi giờ hiện tại như

console.log(moment().utcOffset()); // (-240, -120, -60, 0, 60, 120, 240, etc.)
<script src="https://cdn.jsdelivr.net/momentjs/2.13.0/moment.min.js"></script>


Với , bạn có thể tìm thấy múi giờ hiện tại như

console.log(dayjs().utcOffset()); // (-240, -120, -60, 0, 60, 120, 240, etc.)
<script src="https://unpkg.com/dayjs@1.8.10/dayjs.min.js"></script>

Cả hai API trả về utc offset trong vài phút.


Mặc dù Moment.js là một thư viện tuyệt vời vào thời đó, có những lựa chọn thay thế nhỏ hơn nhiều hiện nay ( dayjs , date-fns ). Khoảnh khắc thật lớn ; xin vui lòng không giới thiệu nó cho các ứng dụng khách.
Dan Dascalescu 17/03/19

1
"Với dayjs, bạn có thể tìm thấy múi giờ hiện tại là" không chính xác - bạn sẽ chỉ tìm thấy phần bù, không phải múi giờ . Ngoài ra, Dayjs không có hỗ trợ múi giờ . Phương thức .utc Offerset () của nó là một trình bao bọc đơn giản so với nguồn gốc getTimezoneOffset().
Dan Dascalescu

4

Múi giờ trong hours-

var offset = new Date().getTimezoneOffset();
if(offset<0)
    console.log( "Your timezone is- GMT+" + (offset/-60));
else
    console.log( "Your timezone is- GMT-" + offset/60);

Nếu bạn muốn chính xác như bạn đã đề cập trong bình luận, thì bạn nên thử như thế này-

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

if(offset<0)
{
    var extraZero = "";
    if(-offset%60<10)
      extraZero="0";

    console.log( "Your timezone is- GMT+" + Math.ceil(offset/-60)+":"+extraZero+(-offset%60));
}
else
{
    var extraZero = "";
    if(offset%60<10)
      extraZero="0";

    console.log( "Your timezone is- GMT-" + Math.floor(offset/60)+":"+extraZero+(offset%60));
}


Không hoạt động cho các múi giờ khi nó không phải là một giờ đầy đủ, như Venezuela, nơi nó trả về GMT-4.5
Mirko

Vâng, đó là đúng. 0,5 có nghĩa là 0,5 * 30 phút. Tôi nghĩ bạn đã nhận được điều này tại sao nó lại cho 0,5?
Abrar Jahin

vâng, vì vậy GMT-4.5 không phải là múi giờ hợp lệ, nó cần thêm một chút phân tích cú pháp để trở thành GMT-4: 30
Mirko

@Mirko bây giờ phần thứ hai của câu trả lời là dành cho bạn
Abrar Jahin

Nếu bạn muốn chính xác hơn, hãy sử dụng UTC thay vì GMT, [Hilton và McCarthy 2013, tr. 231 Cung2. ], xem thêm tại wikipedia GMT - ( en.wikipedia.org/wiki/Greenwich_Mean_Time )
Tom Kuschel

3

Nếu tất cả những gì bạn cần là chữ viết tắt múi giờ "MST" hoặc "EST":

function getTimeZone(){
    var now = new Date().toString();
    var timeZone = now.replace(/.*[(](.*)[)].*/,'$1');//extracts the content between parenthesis
    return timeZone;
}

Sử dụng Date.toString()không đáng tin cậy và MDN giải thích lý do. Tôi đã dán phần có liên quan từ tài liệu của họ trong câu trả lời của tôi .
Dan Dascalescu 17/03/19

3

Xem toán tử kết quả này ngược với Timezone. Vì vậy, áp dụng một số hàm toán học sau đó xác thực số num ít hơn hoặc nhiều hơn.

nhập mô tả hình ảnh ở đây

Xem tài liệu MDN

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

var res = -Math.round(a/60)+':'+-(a%60);
res = res < 0 ?res : '+'+res;

console.log(res)


1
Bao gồm giá trị âm, một số vấn đề
Arun Prasad ES

1
Tại sao round? Nó nên như vậy floor, phải không?
Qwertiy

3
function getLocalTimeZone() {
    var dd = new Date();
    var ddStr = dd.toString();
    var ddArr = ddStr.split(' ');
    var tmznSTr = ddArr[5];
    tmznSTr = tmznSTr.substring(3, tmznSTr.length);
    return tmznSTr;
}

Ví dụ: Thu Jun 21 2018 18:12:50 GMT + 0530 (Giờ chuẩn Ấn Độ)

O / P: +0530


Sử dụng Date.toString()không đáng tin cậy và MDN giải thích lý do. Tôi đã dán phần có liên quan từ tài liệu của họ trong câu trả lời của tôi .
Dan Dascalescu 17/03/19


2

Giá trị này là từ máy của người dùng và nó có thể được thay đổi bất cứ lúc nào vì vậy tôi nghĩ rằng điều đó không quan trọng, tôi chỉ muốn nhận một giá trị gần đúng và sau đó chuyển đổi nó thành GMT trong máy chủ của mình.

Ví dụ: tôi đến từ Đài Loan và nó trả lại "+8" cho tôi.

Ví dụ làm việc

Mã não

function timezone() {
    var offset = new Date().getTimezoneOffset();
    var minutes = Math.abs(offset);
    var hours = Math.floor(minutes / 60);
    var prefix = offset < 0 ? "+" : "-";
    return prefix+hours;
}


$('#result').html(timezone());

HTML

<div id="result"></div>

Kết quả

+8

2

Trên new Date() bạn có thể lấy phần bù, để lấy tên múi giờ bạn có thể làm:

new Date().toString().replace(/(.*\((.*)\).*)/, '$2');

bạn nhận được giá trị giữa ()cuối ngày, đó là tên của múi giờ.


Sử dụng Date.toString()không đáng tin cậy và MDN giải thích lý do. Tôi đã dán phần có liên quan từ tài liệu của họ trong câu trả lời của tôi . Ngoài ra, câu trả lời này đã được đưa ra ít nhất 3 lần rồi.
Dan Dascalescu 17/03/19

2

Đây sẽ là giải pháp của tôi:


    // For time zone:
    const timeZone = /\((.*)\)/.exec(new Date().toString())[1];
    
    // Offset hours:
    const offsetHours = new Date().getTimezoneOffset() / 60;
    
    console.log(`${timeZone}, ${offsetHours}hrs`);

1

Thay thế cho new Date().getTimezoneOffset()moment().format('zz') , bạn cũng có thể sử dụng:

var offset = moment.parseZone(Date.now()).utcOffset() / 60
console.log(offset);
<script src="https://cdn.jsdelivr.net/momentjs/2.13.0/moment.min.js"></script>

jstimezone cũng khá lỗi và không rõ ràng ( https://bitbucket.org/pellepim/jstimezencedetect/issues?status=new&status=open )


Mặc dù Moment.js là một thư viện tuyệt vời vào thời đó, có những lựa chọn thay thế nhỏ hơn nhiều hiện nay ( dayjs , date-fns ). Khoảnh khắc thật lớn ; xin vui lòng không giới thiệu nó cho các ứng dụng khách.
Dan Dascalescu 17/03/19

1

Sử dụng công cụ này để chuyển đổi Offset sang postive:

var offset = new Date().getTimezoneOffset();
console.log(offset);
this.timeOffSet = offset + (-2*offset);
console.log(this.timeOffSet);

-2

Tôi đã tìm kiếm chỉ 3 chuỗi ký tự (như "PDT") và đã thử câu trả lời của Marquez nhưng phải điều chỉnh một chút để hỗ trợ trình duyệt chéo. May mắn thay, chuỗi là trận đấu tiềm năng cuối cùng :)

Đây là những gì tôi đã làm, trong CoffeeScript:

browserTimezone = ->
  userDate = new Date()
  zoneMatches = userDate.toString().match(/([A-Z][A-Z][A-Z])/g)
  userZone = zoneMatches[zoneMatches.length - 1]

Hoạt động trong IE8, IE9, Safari 9, Firefox 44 và Chrome 48


2
Có những múi giờ với 4 chữ cái - hãy cẩn thận: CEST chẳng hạn (Giờ mùa hè Trung Âu)
jbrosi

Sử dụng Date.toString()không đáng tin cậy và MDN giải thích lý do. Tôi đã dán phần có liên quan từ tài liệu của họ trong câu trả lời của tôi .
Dan Dascalescu 17/03/19

-3

Bạn chỉ cần bao gồm khoảnh khắc.js và jstz.js

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jstimezonedetect/1.0.6/jstz.min.js"></script>

và sau đó

<script>
$(function(){
 var currentTimezone = jstz.determine();
 var timezone = currentTimezone.name();
 alert(timezone);
});

</script>

-3

Đây là công việc rất tốt cho tôi:

// Translation to offset in Unix Timestamp
let timeZoneOffset = ((new Date().getTimezoneOffset())/60)*3600;

1
Có lời giải thích nào không?

-4

bạn chỉ có thể thử điều này. nó sẽ trả về cho bạn thời gian máy hiện tại

var _d = new Date(), t = 0, d = new Date(t*1000 + _d.getTime())


Đây là cách tôi nên làm: new Date(new Date().getTime()); tôi sẽ hiển thị: "Thứ Sáu ngày 28 tháng 12 năm 2018 10:15:23 GMT + 0100 (Giờ chuẩn Trung Âu) {}"
darmis

-4

Điều này sẽ làm công việc.


var time = new Date(),
timestamp = Date(1000 + time.getTime());
console.log(timestamp);

Thu May 25 2017 21:35:14 GMT+0300 (IDT)

chưa xác định

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.