AMcoder - javascript, python, java, html, php, sql

AngularJS ամսաթվի զտիչն ավելացնում է ժամային գոտու անսպասելի շեղում:

Փաստաթղթեր՝ https://docs.angularjs.org/api/ng/filter/date< /ա>

Plunker՝ https://plnkr.co/edit/q6KPNejv52SzewDlvGyu?p=preview

Կոդի հատվածը ստորև՝

var app = angular.module("app", []);

app.controller("ctrl", function($scope, $interval) {
    $scope.message = "It works!";
    $scope.dateStart = new Date();
    
    $interval(function() {
      $scope.dateNow = new Date();
    }, 42)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.9/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
    {{ message }} <br>
    
    {{ dateNow - dateStart | date: 'hh:mm:ss:sss' }} <br>
    
    {{ dateNow - dateStart | date: 'hh:mm:ss:sss' : 'UTC' }} <br>
    
</div>

  • Ժամային գոտի չկա - ցուցադրում է 01 որպես ժամ:
  • Անցնելով UTC-ը որպես ժամային գոտի - ցուցադրվում է 12-ը որպես ժամ:

Իմ մյուս նախագծում ես հասկացա այս լուծումը... Դա հիմարություն է թվում, ես չեմ ուզում պատճենել-տեղադրել հիմար ծածկագիրը: Անշուշտ կա ավելի լավ միջոց:

(գուցե ես պարզապես պետք է օգտագործեմ պահը, փաթեթի չափն այստեղ այդքան էլ կարևոր չէ)

app.filter('mydate', function(){
  return function(text, extra) {
    // https://stackoverflow.com/a/39209842/775359
    var date = new Date(text)
    var userTimezoneOffset = date.getTimezoneOffset() * 60000;
    var newdate = new Date(date.getTime() + userTimezoneOffset);

    return pad(newdate.getHours(),2) + ":" + pad(newdate.getMinutes(),2) + ":" + pad(newdate.getSeconds(),2) 
           + (extra ? ":" + pad(newdate.getMilliseconds(), 3) : "");
  };
});

app.filter('pad', [function(){
  return function(text, width) { 
    return pad(text, width)
  };
}]);

function pad(text, width) { 
  text = text + ''; // converting to string because if we pass number it will fail
  return text.length >= width ? text : new Array(width - text.length + 1).join('0') + text;
};

Լուծում չէ. AngularJS-ի գլոբալ Date-ի ժամային գոտու շեղումը (GMT-ը որպես լռելյայն սահմանելը դեռ ցուցադրում է որպես 12 ժամ)

Հնարավոր կրկնօրինակ՝ AngularJs ֆիլտրի ամսաթիվը ավելացվում է 2 ժամ (պատասխանված չէ)


  • Գուշակիր խնդիրն այստեղ այն է, որ (date1 - date2) այլևս ամսաթիվ չէ: Այսպիսով, դուք չեք կարող օգտագործել ամսաթվի ֆիլտր դրա համար: 04.12.2019
  • Ինչպես ասացիք, ձեր կյանքը շատ ավելի հեշտ կլինի օգտագործելով moment.js :-) 04.12.2019
  • Ես սիրում եմ moment.js արդեն: $scope.dateInMinutes = moment.duration( moment($scope.dateNow).diff($scope.dateStart) ).asMinutes(); - այնքան հեշտ, այնքան արտահայտիչ... 04.12.2019

Պատասխանները:


1

Օգտագործեք date: 'HH:mm:ss:sss' : 'UTC' Օգտագործելով կապիտալ HH:

var app = angular.module("app", []);

app.controller("ctrl", function($scope, $interval) {
    $scope.message = "It works!";
    $scope.dateStart = new Date().valueOf();
    
    $interval(function() {
      $scope.dateNow = new Date().valueOf();
    }, 42)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.9/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
    {{ message }} <br>
    
    {{ dateNow - dateStart | date: 'HH:mm:ss:sss' : 'UTC' }} <br>
    
</div>

Ձևաչափի տողը կարող է կազմված լինել հետևյալ տարրերից.

  • «HH»: Օրվա ժամ, լիցքավորված (00-23)
  • «H»: Օրվա ժամ (0-23)
  • «hh». ժամը AM/PM-ին, լիցքավորված (01-12)
  • «ժ»՝ ժամը AM/PM-ին, (1-12)

Լրացուցիչ տեղեկությունների համար տե՛ս

04.12.2019
  • Շնորհակալություն Cpt. Ակնհայտ! OMG... Կարո՞ղ եմ հետ բերել իմ ժամերը... Դա զարգացման բնույթն է, հիմար խնդիր, որը կարող է բավականին մեծ ռեսուրսներ կլանել: 24.12.2019
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..