如何使用javascript

时间:2018-12-20 05:16:56

标签: jquery

我尝试使用以下代码获取伦敦的当前时间和日期。 但是它没有显示伦敦时间。

var date = new Date();
console.log(date.toLocaleString('en-GB'));

以上显示为我的时区(印度时间)的当前时间和日期20/12/2018,10:43:23

任何人都可以帮助我将印度标准时间转换为BST逻辑。

5 个答案:

答案 0 :(得分:2)

伦敦是一种特殊情况,因为英国遵守格林威治标准时间,该时间与世界协调时间(UTC)相对应。

这意味着您不需要像momentjs这样的外部库来获取时区信息,但是您可以依靠Date.toUTCString()之类的内置方法:

const date = new Date();
console.log(date.toUTCString());

注意:在夏季,您必须考虑英国夏令时(UTC + 1)。

答案 1 :(得分:1)

使用moment.js https://momentjs.com/timezone/docs/

moment().tz("Europe/London").format();

答案 2 :(得分:1)

如果您有很多日期操作(如日期比较,修改,本地化等),则可以按照其他答案的建议使用momentjs。如果只想将日期显示为字符串,则可以使用本地javascript日期对象。

var event = new Date();
console.log(event.toLocaleString('en-GB', { timeZone: 'Europe/London' }));

您已经部分完成了。您需要做的就是将“ timeZone”信息传递给您的toLocalseString方法。

[引用Mozilla文档] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString

答案 3 :(得分:0)

JavaScript代码:

function calcTime(city, offset) {
    // create Date object for current location
    d = new Date();

    // convert to msec
    // add local time zone offset 
    // get UTC time in msec
    utc = d.getTime() + (d.getTimezoneOffset() * 60000);

    // create new Date object for different city
    // using supplied offset
    nd = new Date(utc + (3600000*offset));

   // return time as a string
   return "The local time in " + city + " is " + nd.toLocaleString();
}

获取伦敦时间

// get London time
 alert(calcTime('London', '+1'));

答案 4 :(得分:0)

@Shiva 的回答是正确的。但是,如果有人专门寻找以小时为单位的时间,下面是一个示例:

  var rightNow = new Date();
  rightNow = rightNow.toLocaleString('en-GB', {hour: '2-digit',   hour12: false, timeZone: 'Europe/London' });