AngularJS - নিয়ামকগুলিতে তারিখ রূপান্তর করুন


114

কেউ দয়া করে আমাকে কীভাবে আমার নিয়ামকের ভিতরে এই 1387843200000ফর্ম্যাট থেকে তারিখ রূপান্তর করতে পরামর্শ দিতে পারেন ?24/12/2013

শুধু এফওয়াইআই আমার তারিখগুলি এইভাবে সংরক্ষণ করা হয় এবং যখন input type="date"ক্ষেত্রের সাথে ফর্ম সম্পাদনা করার জন্য আবদ্ধ হয় তা মোটেও জনবহুল হয় না।

# প্লঙ্কার ডেমো এখানে।

EditCtrl

app.controller("EditCtrl", [ "$scope", "$filter", "db" function ($scope, $filter, db){

    // this gets me an item object
    var item = db.readItem();

    // item date = 1387843200000
    // this returns undefined 
    item.date = $filter('date')(date[ item.date, "dd/MM/yyyy"]);

}]);

সম্পাদনা। Html - টেমপ্লেট

<form name="editForm" class="form-validate">

        <div class="form-group">
            <label for="date">Event date.</label>
            <input type="date" class="form-control" ng-model="event.date" id="date" required />
        </div>

        <a href="#/" class="btn btn-danger ">Cancel</a>
        <button id="addEvent" class="btn btn-primary pull-right" ng-disabled="isClean() || editForm.$invalid" ng-click="saveEvent()">Save event.</button>

    </form>

1
আপনি নিয়ামক রূপান্তর করতে হবে কেন? আপনার যদি কেবল প্রদর্শন-সক্ষম মান প্রয়োজন হয় তবে আপনার ভিউটিতে তারিখটি ফর্ম্যাট করতে আপনি তারিখ ফিল্টারটি ব্যবহার করতে পারেন।
— জাস্টিন নিসনার

@ জাস্টিননিউসনার - আমার তারিখগুলি এই উপায়ে সংরক্ষণ করা হয় এবং যখন input type="date"ক্ষেত্রের সাথে ফর্ম সম্পাদনা করার বাধ্যবাধকতা জনবহুল হয় না
— ইলাদার্সদা

1
আপনি moment.js Angularjs তারিখের সময় ফিল্টারটি ব্যবহার করতে পারেন - github.com/urish/angular-moment
— বীরেন্দ্র

উত্তর:


212
item.date = $filter('date')(item.date, "dd/MM/yyyy"); // for conversion to string

http://docs.angularjs.org/api/ng.filter:date

তবে আপনি যদি HTML5 টাইপ = "তারিখ" ব্যবহার করেন তবে ইউএসই ফর্ম্যাট yyyy-MM-dd অবশ্যই ব্যবহার করা উচিত M

item.dateAsString = $filter('date')(item.date, "yyyy-MM-dd");  // for type="date" binding


<input type="date" ng-model="item.dateAsString" value="{{ item.dateAsString }}" pattern="dd/MM/YYYY"/>

http://www.w3.org/TR/html-markup/input.date.html

দ্রষ্টব্য: ধরণ = "" টাইপ = "তারিখ" সহ ব্যবহারটি মানহীন দেখাচ্ছে, তবে এটি ক্রোম 31-এ প্রত্যাশিতভাবে কাজ করছে বলে মনে হচ্ছে।


হাই, আমি প্রস্তাবিত হিসাবে বাস্তবায়ন করার চেষ্টা করেছি, কিন্তু এটি আমার পক্ষে কাজ করছে না।
— মুকুন

হাই, আমি প্রস্তাবিত হিসাবে বাস্তবায়ন করার চেষ্টা করেছি, কিন্তু এটি আমার পক্ষে কাজ করছে না। স্প্রিং ওয়েবসার্ভিস থেকে আমার প্রতিক্রিয়াটি হ'ল "বেসিক পার্সোনালআইএনফো": {"এমপোনো": "04005001", "ডাব": 490645800000}, "যোগাযোগআইএনফো": নাল}, আমার এটি আমার বুটস্ট্র্যাপ / এইচটিএমএল 5 তারিখ ইনপুট ক্ষেত্রে প্রদর্শিত করতে হবে। আমি আমার কন্ট্রোলারে ফিল্টারটি ব্যবহার করেছি যেমন: স্কোপ.বেসিকআইএনফো = বেসিক ইনফরমেশনসোসর.কোয়ারি (); $ স্কোপ.বাসিকআইএনফো। $ প্রতিজ্ঞা.থিন (ফাংশন (ডেটা) $ $ স্কোপ.বেসিকআইএনফো.বেসিক পার্সোনালআইএনফো.ডোব = $ ফিল্টার ('তারিখ') (ডেটা.বেসিকপারসোনালআইফোন.ডব, "ইয়াই-এমএম-ডিডি");}); যে কোনও সাহায্যের প্রশংসা করা হয়েছে
— মুকুন

1
ঠিক আছে আমি এইভাবে আমার নিয়ামকটিতে ফর্ম্যাটিংটি পরিবর্তন করেছি এবং এটি মনে হয় এটি সঠিক উপায় কিনা তা নিশ্চিত নয়। $ স্কোপ.বাসিকআইএনফো.বাসিকপ্রেসোনালআইএনফো.ডব = নতুন তারিখ ($ ফিল্টার ('তারিখ') (ডেটা.বেসিকপারসোনালআইএনফো.ডব, "yyyy-MM-dd"));
— মুকুন

আমার তারিখটি এপিআই ডেটটাইম থেকে এইভাবে আসছে: "2017/12/15" তবে এটি করছেন {{এমডেটটাইম | তারিখ: 'dd-MM-yyyy' date date তারিখের ফর্ম্যাট পরিবর্তন হচ্ছে না i আমি কীভাবে এটিকে প্রকাশের ভিতরে ফর্ম্যাট করব?
— বিশাল সিং

16

একটি ফিল্টার.জেস তৈরি করুন এবং আপনি এটি পুনরায় ব্যবহারযোগ্য হিসাবে তৈরি করতে পারেন

angular.module('yourmodule').filter('date', function($filter)
{
    return function(input)
    {
        if(input == null){ return ""; }
        var _date = $filter('date')(new Date(input), 'dd/MM/yyyy');
        return _date.toUpperCase();
    };
});

দৃশ্য

<span>{{ d.time | date }}</span>

বা নিয়ামক মধ্যে

var filterdatetime = $filter('date')( yourdate );

কৌণিক জেএসে তারিখ ফিল্টারিং এবং ফর্ম্যাটিং।


1
দেখে মনে হচ্ছে এটি ইতিমধ্যে
— অ্যাংুলারজেএস-এ

1

এখানে সমস্ত সমাধান মডেলটিকে সত্যই ইনপুটটিতে আবদ্ধ করে না কারণ আপনাকে নিজের অবজেক্টের dateAsStringমতো সংরক্ষণ করতে হবে আবার date(ফর্মটি জমা দেওয়ার পরে নিয়ামক হিসাবে) পরিবর্তন করতে হবে ।

আপনার যদি বাধ্যতামূলক প্রভাবের প্রয়োজন না হয় তবে এটি কেবল ইনপুটতে দেখানোর জন্য,

একটি সহজ হতে পারে:

<input type="date" value="{{ item.date | date: 'yyyy-MM-dd' }}" id="item_date" />

তারপরে, আপনি যদি কন্ট্রোলারে পছন্দ করেন তবে আপনি সম্পাদিত তারিখটি এভাবে সংরক্ষণ করতে পারবেন:

  $scope.item.date = new Date(document.getElementById('item_date').value).getTime();

সচেতন থাকুন: আপনার নিয়ামক itemহিসাবে, $scope.itemএটি কাজ করার জন্য আপনাকে আপনার ভেরিয়েবলটি ঘোষণা করতে হবে ।


1

আমি জাভাস্ক্রিপ্ট প্রস্তাব:

var item=1387843200000;
var date1=new Date(item);

এবং তারপরে তারিখ 1 একটি তারিখ।


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