【问题标题】:Convert time to users local zone将时间转换为用户本地区域
【发布时间】:2015-08-18 19:43:50
【问题描述】:

尝试使用 momentjs 库将以下日期戳从服务器格式化/解析到用户本地时区。

添加小提琴:http://jsfiddle.net/2hgyb490/

我试过了

moment.utc(date)

moment(date).format(<format>)

moment.utc(date).local()

我来自服务器的时间字符串如下所示: 2015-08-17T15:33:00

我的过滤器看起来像:

var angular = require("angular");

module.exports = function filter (ngModule) {

  // Filter =================================================================

  var filterName = "localTime";

  ngModule.filter( "localTime", function (moment)
  {
      return ( function( date )
      {
          debugger;
          var formattedLocalTime = moment(date).local().format( "h:mma M/d/YYYY" );

          return formattedLocalTime;
      } );

  } );

  return filterName;
};

我也尝试了以下方法,但似乎不一致:

  var testDateUtc = moment.utc(date);
  var localDate = moment(testDateUtc).local();
  var formattedLocalTime = localDate.format("h:mma M/d/YYYY");

  return formattedLocalTime;

【问题讨论】:

    标签: javascript angularjs momentjs


    【解决方案1】:

    d 小写是星期几(检查:localDate.day() === 4)。

    您需要一个大写的D 来表示月份中的某天 (localDate.date() === 2)。

    http://jsfiddle.net/2hgyb490/1/

    【讨论】:

    • 仍然遇到一些奇怪的问题,如果我在凌晨 1:00 输入,它会呈现为下午 12:00。根据我的服务器人员的说法,时间戳是正确的。我会尝试用时间字符串更新它。
    猜你喜欢
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多