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.