কিভাবে কৌণিক দিনগুলিতে তারিখ ফর্ম্যাট করা যায়


143

আমি তারিখটি ফর্ম্যাট করতে চাই mm/dd/yyyy। আমি নিম্নলিখিতগুলি চেষ্টা করেছিলাম এবং এর কোনওটিই আমার পক্ষে কাজ করে না। যে কেউ এই আমাকে সাহায্য করতে পারেন?

রেফারেন্স: ui- তারিখ

<input ui-date ui-date-format="mm/dd/yyyy" ng-model="valueofdate" /> 

<input type="date" ng-model="valueofdate" />

1
আপনি কি ui-date-format="mm/dd/yyyy"পুরোপুরি সরানোর চেষ্টা করেছেন ? দেখে মনে হচ্ছে এই বিকল্পটি ছাড়াই ডিফল্ট আচরণ আপনি যা চান তা।
Lukas

আপনি moment.js চেষ্টা করেছেন?
সিটিয়া

না আমি moment.js চেষ্টা করিনি। আমার সার্ভার আমাকে জেসন স্ট্রিং 20140313T00: 00: 00 প্রদান করে। আমি এইচটিএমএল 5 ইনপুট টাইপের তারিখ এবং ইউআই-তারিখ-ফর্ম্যাট উভয়ভাবেই চেষ্টা করেছি। ইউআই-ডেট-ফর্ম্যাট সরিয়ে ফেলা বলে এটি এটিকে একটি ফর্ম্যাট দেয় string
ব্যবহারকারী 16

এই উত্তরটি ব্যবহার $formattersএবং $parsersপ্রতি আমার অনুরূপ সমস্যার সমাধান করেছে।
রস রোজার্স

আপনি এইচটিএমএল-তে ফিল্টারগুলি পাশাপাশি জাভাস্ক্রিপ্ট থেকেও ব্যবহার করতে পারেন, দয়া করে রেফার করুন: স্ট্যাকওভারফ্লো.com
a

উত্তর:


204

Angular.js এর একটি বিল্ট-ইন ডেট ফিল্টার রয়েছে।

ডেমো

// in your controller:
$scope.date = '20140313T00:00:00';

// in your view, date property, filtered with date filter and format 'MM/dd/yyyy'
<p ng-bind="date | date:'MM/dd/yyyy'"></p>

// produces
03/13/2014

আপনি তারিখ ফিল্টারের উত্সটিতে সমর্থিত তারিখের ফর্ম্যাটগুলি দেখতে পারেন ।

সম্পাদনা করুন :

আপনি যদি ডেটপিকারে সঠিক বিন্যাসটি পেতে চেষ্টা করছেন (আপনি যদি ডেটপিকার ব্যবহার করছেন বা এটির ফরম্যাটারটি ব্যবহার করার চেষ্টা করছেন তবে স্পষ্ট নয়), এই সমর্থিত বিন্যাসের স্ট্রিংগুলি এখানে রয়েছে: https://api.jqueryui.com/datepicker/


1
সার্ভার আমাকে '20140313T00: 00: 00 রিটার্ন দেয় এবং আমি মিমি / ডিডি / ইয়ি ফর্ম্যাটটিতে এই জাতীয় ইনপুটটিতে দেখাতে চাই - <ইনপুট টাইপ = তারিখ "এনজি-মডেল =" মাইডেট ">
ব্যবহারকারী

আমি নিশ্চিত নই কেন আমার উত্তরটি নিম্নমানের হয়েছিল। এই উত্তরটি অ্যাংুলারের ডক্স থেকে প্রায় ভার্ভ্যাটিম নেওয়া হয়েছে। JQueryUI তারিখ-পিকার বিন্যাসের স্ট্রিংগুলির উল্লেখ কারণ প্রশ্নটিতে ব্যবহৃত মডিউলটি ইউআই-ডেট যা jQuery এবং jQueryUI এর উপর নির্ভরশীলতা রয়েছে। উত্তরে ভুল বা বিভ্রান্তিকর কিছুই নেই।
জিম শুবার্ট

আমি মনে করি না jQuery UI লিঙ্কটি ফর্ম্যাট স্ট্রিংয়ের জন্য সঠিক। docs.angularjs.org/api/ng/filter/date আরও সঠিক বলে মনে হচ্ছে।
ট্রুউইল

@ ট্রুইউইল ওপি বিশেষত ইউআই-ডেটের বিষয়ে জিজ্ঞাসা করছে, যা jQuery ডেটপিকার ব্যবহার করে। আমার পোস্টের প্রথম লিঙ্কটি সোর্স কোডের সাথে লিঙ্ক করে যার কৌণিক দ্বারা সমর্থিত ফর্ম্যাট স্ট্রিং রয়েছে।
জিম শুবার্ট

@ জিমস্কুবার্ট এটি আমার তারিখের স্ট্রিং '2013-11-11 00:00:00' এবং এটি রূপান্তর করবে না তারিখ: 'দীর্ঘদিন', কোনও পরামর্শ?
বর্ণমালা

97

যদি আপনার কোনও ইনপুট ক্ষেত্র না থাকে, তবে কেবল সঠিক বিন্যাসের সাহায্যে স্ট্রিংয়ের তারিখটি প্রদর্শন করতে চান, আপনি কেবল তার জন্য যেতে পারেন:

<label ng-bind="formatDate(date) |  date:'MM/dd/yyyy'"></label>

এবং জেএস ফাইল ব্যবহার করুন:

    // @Function
    // Description  : Triggered while displaying expiry date
    $scope.formatDate = function(date){
          var dateOut = new Date(date);
          return dateOut;
    };

এটি স্ট্রিংয়ের তারিখটিকে জাভাস্ক্রিপ্টে নতুন তারিখের অবজেক্টে রূপান্তর করবে এবং এমএম / ডিডি / ইয়াই ফর্ম্যাটে তারিখটি প্রদর্শন করবে।

আউটপুট: 12/15/2014

সম্পাদনা করুন
যদি আপনি "2014-12-19 20:00:00" স্ট্রিং ফর্ম্যাটের স্ট্রিং ডেট ব্যবহার করছেন (পিএইচপি ব্যাকএন্ড থেকে উত্তীর্ণ), তবে আপনার কোডটি পরিবর্তিত করা উচিত: https://stackoverflow.com / A / 27616348/1904479


জাভাস্ক্রিপ্ট থেকে আরও যুক্ত করে আপনি কোডটি সেট করতে পারেন:

$scope.eqpCustFields[i].Value = $filter('date')(new Date(dateValue),'yyyy-MM-dd');

এটি ইতিমধ্যে আপনার সাথে একটি তারিখ রয়েছে সে ক্ষেত্রে এটি অন্যথায় আপনি বর্তমান সিস্টেমের তারিখ পেতে নিম্নলিখিত কোডটি ব্যবহার করতে পারেন:

$scope.eqpCustFields[i].Value = $filter('date')(new Date(),'yyyy-MM-dd');

তারিখের ফর্ম্যাটের বিষয়ে আরও তথ্যের জন্য, দেখুন: https://docs.angularjs.org/api/ng/filter/date


27

আমি এটি ব্যবহার করছি এবং এটি ঠিকঠাক কাজ করছে।

{{1288323623006 | date:'medium'}}: Oct 29, 2010 9:10:23 AM
{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}: 2010-10-29 09:10:23 +0530
{{1288323623006 | date:'MM/dd/yyyy @ h:mma'}}: 10/29/2010 @ 9:10AM
{{1288323623006 | date:"MM/dd/yyyy 'at' h:mma"}}: 10/29/2010 at 9:10AM

আমি কোনও জেএস তারিখ অবজেক্টটি পাস করলে এটি আমার পক্ষে কার্যকর হয় না। কোন পরামর্শ কেন?
পানশুল

এটি কেবলমাত্র তারিখের জন্য কাজ করা উচিত যেখানে তারিখটি মিলি সেকেন্ডে থাকে এবং আপনার ক্ষেত্রে তারিখটি তারিখ ফর্মেটে থাকে। অনুসরণ করুন: w3schools.com/js/js_date_formats.asp
রবীন্দ্র

18

এটি আপনি যা চেয়েছিলেন তা আসলেই নয় - তবে আপনি এইচটিএমএল-তে একটি ডেট ইনপুট ক্ষেত্র তৈরি করার চেষ্টা করতে পারেন:

<input type="date" ng-model="myDate" />

তারপরে এই পৃষ্ঠায় এটি মুদ্রণ করতে আপনি ব্যবহার করবেন:

<span ng-bind="convertToDate(myDate) | date:'medium'"></span>

অবশেষে, আমার নিয়ামকটিতে আমি একটি পদ্ধতি ঘোষণা করি যা ইনপুট মান থেকে একটি তারিখ তৈরি করে (যা ক্রোমে স্পষ্টত 1 দিনের ছুটি পার্স করা হয়):

$scope.convertToDate = function (stringDate){
  var dateOut = new Date(stringDate);
  dateOut.setDate(dateOut.getDate() + 1);
  return dateOut;
};

তাই সেখানে যদি আপনি এটি আছে। পুরো জিনিসটি কাজ করার জন্য নীচের প্লঙ্কারটি দেখুন: http://plnkr.co/edit/8MVoXNaIDW59kQnfpaWW?p=preview । ভাগ্যের সেরা!


11

এটি কাজ করবে:

{{ oD.OrderDate.replace('/Date(','').replace(')/','') | date:"MM/dd/yyyy" }}

দ্রষ্টব্য: একবার আপনি এইগুলি প্রতিস্থাপন করে তারপরে অবশিষ্ট তারিখ / মিলিস প্রদত্ত ফোমেটে রূপান্তরিত হবে।


কোনও কারণে আমার ক্ষেত্রটি এই ফর্ম্যাট / তারিখ (99999) / তে রয়েছে, আপনি কেন জানেন?
আন্তোনিও কোরিয়া



3

আপনার সার্ভারের সাইড কোড থেকে ক্লায়েন্ট সাইডে কেবল ইউটিসি তারিখের ফর্ম্যাটটি পাস করুন

এবং সিনট্যাক্সের নীচে ব্যবহার করুন -

 {{dateUTCField  +'Z' | date : 'mm/dd/yyyy'}}

 e.g. dateUTCField = '2018-01-09T10:02:32.273' then it display like 01/09/2018

1

উপরের সমস্ত সমাধানগুলি দেখার পরে, নিম্নলিখিতটি আমার জন্য দ্রুত সমাধান ছিল। আপনি যদি কৌণিক-উপাদান ব্যবহার করছেন:

 <md-datepicker ng-model="member.reg_date" md-placeholder="Enter date"></md-datepicker>

ফর্ম্যাট সেট করতে:

app.config(function($mdDateLocaleProvider) {
    $mdDateLocaleProvider.formatDate = function(date) {
        // Requires Moment.js OR enter your own formatting code here....
        return moment(date).format('DD-MM-YYYY');
    };
});

সম্পাদনা করুন: আপনাকে একটি তারিখে টাইপ করার জন্য পার্সেডেটও সেট করতে হবে (এই উত্তর থেকে কৌণিক উপাদানের এমডি-ডেটপিকারের ফর্ম্যাট পরিবর্তন করুন )

$mdDateLocaleProvider.parseDate = function(dateString) {
    var m = moment(dateString, 'DD/MM/YYYY', true);
    return m.isValid() ? m.toDate() : new Date(NaN);
};

1
var app=angular.module('myApp',[]);
        app.controller('myController',function($scope){         
              $scope.names = ['1288323623006','1388323623006'];

        });

এখানে কন্ট্রোলারের নাম "মাইকন্ট্রোলার" এবং অ্যাপের নাম "মাই অ্যাপ"।

<div ng-app="myApp" ng-controller="myController">
        <ul>
            <li ng-repeat="x in names">
                {{x | date:'mm-dd-yyyy'}}

            </li>

        </ul>
    </div>

ফলাফল এর মতো দেখতে পাবেন: - * 10-29-2010 * 01-03-2013


0

এই সমস্যাটি ঠিক এই লাইন থেকে এসেছে বলে মনে হচ্ছে:
https://github.com/angular-ui/ui-date/blob/master/src/date.js#L106

প্রকৃতপক্ষে এই লাইনটি jQuery UI এর সাথে বাধ্যতামূলক যা এটি ডেটা ফর্ম্যাটটি ইনজেক্ট করার জায়গা হওয়া উচিত।

আপনি দেখতে পাচ্ছেন যে এনজি-ডেট-ফর্ম্যাট থেকে মান নির্ধারণের মতো var optsকোনও সম্পত্তি নেই dateFormat

যাইহোক, নির্দেশিকাটিতে uiDateConfigবৈশিষ্ট্যগুলিতে যুক্ত করার জন্য একটি ধ্রুবক রয়েছে opts

নমনীয় সমাধান (প্রস্তাবিত):

থেকে এখানে আপনি কিছু অপশন jQuery UI বিকল্প সহ নির্দেশ একটি নিয়ামক পরিবর্তনশীল এ injection ঢোকাতে পারবেন দেখতে পারেন।

<input ui-date="dateOptions" ui-date-format="mm/dd/yyyy" ng-model="valueofdate" />

myAppModule.controller('MyController', function($scope) {
    $scope.dateOptions = {
        dateFormat: "dd-M-yy"
    };
});

হার্ডকোডযুক্ত সমাধান:

আপনি যদি এই প্রক্রিয়াটি সর্বদা পুনরাবৃত্তি করতে না চান তবে uiDateConfigতারিখের তারিখের মানটি এতে পরিবর্তন করুন :

.constant('uiDateConfig', { dateFormat: "dd-M-yy" })

0

আমার একই সমস্যা ছিল এবং উপরের মতামত হিসাবে, ভেবেছিলাম জাভাস্ক্রিপ্টে একটি স্থানীয় পদ্ধতি থাকতে হবে। জিনিস হ'ল new Date(valueofdate)একটি তারিখ অবজেক্ট।

তবে, http://www.w3schools.com/js/js_date_formats.asp দেখুন , যে অংশটি শূন্যের দিক থেকে বলেছে। স্ট্রিংয়ের একটি তারিখ, উদাহরণস্বরূপ পিএইচপি থেকে প্রতিধ্বনির মতো হতে হবে:

$valueofdate = date('Y-n-j',strtotime('theStringFromQuery'));

এটি একটি স্ট্রিং পাস করবে, উদাহরণস্বরূপ: '1999-3-3'এবং জাভাস্ক্রিপ্ট এর সাথে সঠিক ফর্ম্যাট সহ কোনও বস্তুর পার্সিং করবে

$scope.valueofdate = new Date(valueofdate);

<input ui-date ui-date-format="mm/dd/yyyy" ng-model="valueofdate" />
<input type="date" ng-model="valueofdate" />

তারিখ ফর্ম্যাটগুলির জন্য পিএইচপি-তে লিঙ্ক করুন : http://www.w3schools.com/php/func_date_date_format.asp


0

ng-bind="reviewData.dateValue.replace('/Date(','').replace(')/','') | date:'MM/dd/yyyy'"

এটি ভাল কাজ করা উচিত ব্যবহার করুন। :) পর্যালোচনা ডেটা এবং তারিখভ্যালু ক্ষেত্রগুলি আপনার পরামিতি বাকী হিসাবে একই থাকতে পারে হিসাবে পরিবর্তন হতে পারে


0
{{convertToDate  | date :  dateformat}}                                             
$rootScope.dateFormat = 'MM/dd/yyyy';

1
আপনি কেন আপনার উত্তরের মত একই লাইনের সাথে মন্তব্য পোস্ট করলেন? এবং আপনার উত্তরটি কেবল কয়েকটি কোড, কোনও ব্যাখ্যা নেই।
পোচমুরনিক

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.