当前位置: 首页 > 知识库问答 >
问题:

如何转换力矩。js日期到用户本地时区?

谢唯
2023-03-14

我使用Moment.js和Moment-Timezone框架,并有一个明确在UTC时区的Moment.js日期对象。如何将其转换为浏览器的当前时区?

var testDateUtc = moment.tz("2015-01-30 10:00:00", "UTC");
var localDate = ???

所以如果我能找出用户所在的时区就好了;或者,我想把date对象转换成另一个数据对象,它只使用“本地时区”,不管它实际上是什么。

共有3个答案

刁星渊
2023-03-14

以下是我所做的:

var timestamp = moment.unix({{ time }});
var utcOffset = moment().utcOffset();
var local_time = timestamp.add(utcOffset, "minutes");
var dateString = local_time.fromNow();

其中,{{time}}是utc时间戳。

呼延辰龙
2023-03-14
var dateFormat = 'YYYY-DD-MM HH:mm:ss';
var testDateUtc = moment.utc('2015-01-30 10:00:00');
var localDate = testDateUtc.local();
console.log(localDate.format(dateFormat)); // 2015-30-01 02:00:00
  1. 定义您的日期格式。
  2. 创建一个时刻对象并将对象上的UTC标志设置为true。
  3. 创建一个从原始矩对象转换而来的本地化矩对象。
  4. 从本地化的时刻对象返回一个格式化的字符串。

见:http://momentjs.com/docs/#/manipulating/local/

焦学海
2023-03-14

您不需要为此使用即时时区。主要时刻。js库具有使用UTC和本地时区的完整功能。

var testDateUtc = moment.utc("2015-01-30 10:00:00");
var localDate = moment(testDateUtc).local();

在那里,您可以使用您可能期望的任何功能:

var s = localDate.format("YYYY-MM-DD HH:mm:ss");
var d = localDate.toDate();
// etc...

请注意,通过将testDateUtc传递回moment()构造函数,它创建了一个克隆。否则,当您调用时。local(),它还将更改testDateUtc值,而不仅仅是localDate值。时刻是可变的。

另请注意,如果您的原始输入包含时区偏移,例如00:00Z,那么您可以直接使用时刻解析它。您不需要使用. utc. local。例如:

var localDate = moment("2015-01-30T10:00:00Z");
 类似资料:
  • 问题内容: 从服务器上,我得到了这种格式的datetime变量:它是UTC时间。我想使用JavaScript将其转换为当前用户的浏览器时间。 如何使用JavaScript或jQuery完成此操作? 问题答案: 在将字符串转换为javascript中的日期之前,将’UTC’附加到字符串中:

  • 问题内容: 我从我的API获取此日期字符串: 但是此日期为UTC格式,我想将其转换为当地时间,该怎么办? 我尝试了这个: 但是它返回了这个错误: 问题答案: 您的日期格式模式错误。改成: 有关更多信息,请参见SimpleDateFormat的javadoc。

  • var res=“03/19/2020 13:15:00”;//最短时间 当我转换到本地时区时 矩(矩(存储日期,'MM/DD/YYYY HH:MM:ss').utc()).local().format(“MM-DD-YYYY HH:MM:ss”) 我尝试了很多东西。但我不知道如何在javascript中将Est日期时间转换为本地日期时间。

  • 问题内容: 有谁知道如何将JS dateTime转换为MySQL datetime?还有一种方法可以向JS日期时间添加特定的分钟数,然后将其传递给MySQL日期时间? 问题答案: 尽管JS确实拥有足够的基本工具来执行此操作,但它相当笨拙。

  • 问题内容: 输入字符串:2012年6月14日-UTC 01:00:00 输出本地字符串:2012年6月13日-美国东部时间21:00:00 我喜欢从中获取补偿 有什么建议吗? 问题答案: 这应该可以满足您的需求: 请注意,您的示例是错误的:在UTC的6月14日凌晨1点,在EST,标准时间晚上8点或夏令时仍然是6月13日。在我的系统上,该程序会打印

  • 我有以下字符串: 我尝试用以下代码将此字符串转换为: Java . time . format . datetimeparseexception:无法解析文本“18/07/2019 04:30:00”:无法从TemporalAccessor获取LocalDateTime 我错过了什么?