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


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.