কম্পিউটার টিউটোরিয়াল

AngularJS-এ HTML5 ডেট ইনপুট: Firefox-এ পঠনীয় ডেট মান দেখানোর উপায়

সমস্যা

Firefox (লেখা পর্যন্ত) <input type="date"> সাপোর্ট করে না। এটি সাধারণ টেক্সট বক্স হিসেবে আচরণ করে এবং মান স্ট্রিং আকারে ফেরত দেয়। AngularJS-র ngModel একটি Date অবজেক্ট আশা করে, স্ট্রিং নয়।

সমাধান: দ্বৈত বাইন্ডিং (Two-way Binding) সহ একটি ফিল্টার

একটি আসল Date অবজেক্ট (date) এবং একটি স্ট্রিং রিপ্রেজেন্টেশন (dateString) রক্ষা করুন, $watch দিয়ে সিঙ্ক করুন।

কন্ট্রোলার কোড

function MainCtrl($scope, dateFilter) {
  $scope.date = new Date(); // আসল Date অবজেক্ট

  // Date → String (yyyy-MM-dd) برای ইনপুট ভ্যালু
  $scope.$watch('date', function (date) {
    $scope.dateString = dateFilter(date, 'yyyy-MM-dd');
  });

  // String → Date (ইনপুট থেকে পরিবর্তন হলে)
  $scope.$watch('dateString', function (realdate) {
    $scope.date = new Date(realdate);
  });
}

টেমপ্লেট

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

নোট: Firefox এখন type="date" সাপোর্ট করে (v57+), কিন্তু পুরনো ভার্সন সাপোর্টের জন্য এই প্যাটার্নটি এখনও উপকারী।

  1. উইন্ডোজ ১০-এ ইনপুট ইন্ডিকেটর ও ল্যাঙ্গুয়েজ বার দেখানো বা লুকানো

  2. জাভাতে বর্তমান ডেট ও টাইম পাওয়ার পদ্ধতি

  3. জাভা ৯-এ JShell-এ ডেট ও টাইম কীভাবে পাবেন?

  4. Chrome এবং Firefox ব্রাউজারে ভার্টিক্যাল ট্যাব পাওয়ার উপায়