নিবন্ধের তারিখের ফর্ম্যাটটি পরিবর্তন করুন


21

আমি ড্রুপাল ৮-এর নিবন্ধগুলির জন্য ব্যবহৃত তারিখের ফর্ম্যাটটি পরিবর্তন করতে চাই It মনে হচ্ছে এটি Default medium dateডিফল্টরূপে ফর্ম্যাটটি ব্যবহার করে । আমি এখানে আমার নিজস্ব ফর্ম্যাটটি যুক্ত করেছি admin/config/regional/date-time, তবে নিবন্ধগুলি যে বিন্যাসটি ব্যবহার করে তা কোথায় সম্পাদনা করতে হবে তা খুঁজে পাচ্ছি না।

সিএমএস থেকে এটি করার কোনও উপায় আছে বা কোডে এটি করা দরকার?

উত্তর:


41

সুতরাং আমি এটি দেখার বিষয়টি স্বীকার করার চেয়ে বেশি সময় ব্যয় করার পরে, আমি এর দুটি সমাধান নিয়ে এসেছি।

সমাধান 1

এটি করার একটি উপায় হ'ল ডারোল ফাংশন যা তার উত্তরে উল্লেখ করেছে function আমার মামলায় তার উদাহরণটি পরিবর্তন করে, আমার node--article.html.twigফাইলে, আমি পরিবর্তন করেছি:

{% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %}

থেকে

{% set createdDate = node.getCreatedTime|date('j F Y') %}
{% trans %}Submitted by {{ author_name }} on {{ createdDate }} {% endtrans %}

এই পদ্ধতির সুবিধা হ'ল এটি সহজ এবং দ্রুত। অসুবিধাটি হ'ল আমি দ্রুপালের অন্তর্নির্মিত তারিখ বিন্যাস সিস্টেমটি ব্যবহার করছি না।

সমাধান 2

দ্রুপালের তারিখ বিন্যাস সিস্টেমটি ব্যবহার করার জন্য, আমি প্রথমে আমার কাস্টম ফর্ম্যাটটি তৈরি করেছি admin/config/regional/date-time। তারপরে আমি node--article.html.twigনিম্নরূপে সম্পাদনা করেছি :

{% set createdDate = node.getCreatedTime|format_date('my_custom_format') %}
{% trans %}Submitted by {{ author_name }} on {{ createdDate }} {% endtrans %}

এটি ধরে নিয়েছে যে আমি আমার কাস্টম ফর্ম্যাটটির নাম " আমার কাস্টম ফর্ম্যাট " রেখেছি , যার ফলস্বরূপ মেশিনের নাম my_custom_format

যদিও এই সমাধানটির জন্য অতিরিক্ত পদক্ষেপের প্রয়োজন, আমি অনুভব করি এটি করার এটি আরও বেশি দ্রুপাল উপায়।

আমি এই পৃষ্ঠায় এটি সম্পর্কে দ্রুপালের টুইগ ফিল্টার সম্পর্কে শিখেছি ।


9

আপনি যদি নিবন্ধের সামগ্রী ধরণের স্তরের তারিখের ফর্ম্যাট বেসটি পরিবর্তন করতে চান। আপনি নিম্নলিখিত কোডটি সম্পাদনা / যুক্ত post.published_at|dateকরতে পারেন এবং তারিখের ফর্ম্যাটটি পরিবর্তন করতে একটি ফিল্টার ব্যবহার করতে পারেন।

নোড - article.html.twig

{# Here are few example #}
{{ post.published_at|date(format='j  F  Y') }} {# Output = 10 March 2001#}
{{ post.published_at|date(format="F j, Y, g:i a") }} {# Output = March 10, 2001, 5:16 pm#}
{{ post.published_at|date(format='m/d/Y') }} {# Output 10/3/2001 #}

টুইগ একই নামকরণ কোডটি পিএইচপি তারিখের ফর্ম্যাট হিসাবে ব্যবহার করে । টুইগ ডেট ফর্ম্যাট সম্পর্কে আরও তথ্যের জন্য দেখুন - http://twig.sensiolabs.org/doc/filters/date.html


1
থাম্বড আপ! darol100, ড্রপাল 7 সাইটের কারও জন্য এটি কি একই পদ্ধতিতে টিপিএল ফাইলগুলিতে করা যেতে পারে?
জনডোয়্যা

1
হ্যাঁ, তবে এইগুলি পিচ্ছিল চিহ্নের পরিবর্তে পিএইচপি টেম্পলেট ব্যবহার করে। এটি দেখতেও এটির মতো কিছু হওয়া উচিত <?php print format_date($node->created, 'custom', 'm/d/y'); ?>
itdarrylnorris

ধন্যবাদ দারোল 100, এটি আমাকে টুইগ ফিল্টার সম্পর্কে শিখতে সহায়তা করতে যথেষ্ট কার্যকর ছিল। তবে শেষ পর্যন্ত, আমি দ্রুপাল যে ফর্ম্যাট_ডেট ফিল্টারটি ব্যবহার করে যাচ্ছিলাম (আমি আমার উত্তরে দেখাব)।
ক্রিস

8

আমি ক্রিসের সমাধানের জন্য আরও 2. এটি যেমনটি বলেছে এটি আরও দুর্বল উপায় ... তবে এটি এখনও সেরা বিকল্প নয়।

format_date () অবমূল্যায়ন করা হয়েছে এবং ড্রুপাল 9 এর আগে মুছে ফেলা হবে ... মানে একদিন, আপনি একটি ড্রুপাল আপডেট করবেন এবং এটি ভেঙে যাবে।

পরিবর্তে, একটি প্রাক প্রসেস ফাংশনে আপনার। থিম ফাইলটিতে এটি করা ভাল।

function [theme_name]_preprocess_node(&$variables) {
  $variables['date'] = \Drupal::service('date.formatter')->format($variables['node']->getCreatedTime(), 'my_custom_format');
}

2

ডিউক কী বলেছিল তা সম্পর্কে একটি পর্যবেক্ষণ:

format_date () অবচয় করা হয়েছে এবং ড্রুপাল 9 এর আগে সরানো হবে ...

হ্যাঁ, মূল / অন্তর্ভুক্ত / সাধারণ.ইনকে সংজ্ঞায়িত ড্রুপাল ফাংশন ফর্ম্যাট_ডেট () প্রকৃতপক্ষে হ্রাস করা হয়েছে। তবে, আপনি যখন টুইগ ফিল্টার ফর্ম্যাট_ডেট () ব্যবহার করেন আপনি সেই দ্রুপাল ফাংশনটিকে কল করছেন না, এর পরিবর্তে আপনি টুইগ এক্সটেনশন :: গেটফিল্টারস () এ দ্রুপাল দ্বারা সংজ্ঞায়িত দ্বৈত ফিল্টারটি ব্যবহার করছেন এবং এই ফিল্টারটি ডেটফর্ম্যাটটার :: ফর্ম্যাট () কল করে ।

সুতরাং, টুইগ ফিল্টার বিন্যাস_ডেট () ব্যবহার করা নিরাপদ এবং ক্রিসের সমাধান 2 ভাল।


2

ইতিমধ্যে ব্যবহারে থাকা তারিখের ফর্ম্যাটটি আঁকানো এবং এটি ইউআই-তে পরিবর্তন করাও সম্ভব। পৃষ্ঠায় আপনি যা দেখছেন তা কেবল তারিখের ফর্ম্যাটগুলির সাথে তুলনা করুনadmin/config/regional/date-time/

যদি আপনি উদাহরণস্বরূপ "ডিফল্ট মাঝারি তারিখ" পরিবর্তন করেন তবে এটি কোনও টেম্পলেট / পাতলা ফাইলগুলিকে স্পর্শ না করে এই ফর্ম্যাটটি ব্যবহার করে তারিখগুলি পরিবর্তন করবে।

তারিখ বিন্যাসগুলি বহু ভাষা সেটআপের জন্য ভাষা প্রতি সেট / অনুবাদ করা যায়।


এটাই সেরা উত্তর!
সুদোমান

1

টোকেন ক্ষেত্র তৈরি করতে আপনি ডিসপ্লে স্যুট ব্যবহার করে নিজের জমা দেওয়া ক্ষেত্রটি তৈরি করতে পারেন।

দ্রুপাল 8 / কাঠামো / ডিএস / ক্ষেত্রগুলিতে

তারপরে এইচটিএমএল এবং টোকেনগুলি ব্যবহার করে একটি ক্ষেত্র যুক্ত করুন ...

By [node:author] on [node:created:custom:F j, Y]

1

আপনি node.html.twig এ এই বিন্যাসটি কাস্টমাইজ করতে পারেন:

{{ node.createdtime|date(format="Y-m-d") }}

0

তারিখ এবং সময়ের জন্য আপনার সমস্ত ফর্ম্যাট পিএইচপি থাকতে পারে

// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
date("m.d.y");                         // 03.10.01
date("j, n, Y");                       // 10, 3, 2001
date("Ymd");                           // 20010310
date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
date("H:i:s");                         // 17:16:18
date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)


{% set createdDate = node.getCreatedTime|date('F j, Y, g:i a') %}
<div class="newsSingleAuthorDate">
      {% trans %}Submitted by <span>{{ author_name }}</span>  on {{ createdDate }} {% endtrans %}
</div>

0

আমি কেবলমাত্র তারিখের অক্ষরগুলি পরিবর্তন করেছি তবে আশেপাশের কোনও এইচটিএমএল উপাদানগুলি নয়, তা নিশ্চিত করতে আমি নিম্নলিখিত হুক ব্যবহার করি:

function [theme_name]_preprocess_field(array &$variables) {
  if ($variables['field_name'] === 'created') {
    $timestamp = $variables['element']['#items']->value;
    $markup = \Drupal::service('date.formatter')->format($timestamp, 'html_date');
    $variables['items'][0]['content']['#markup'] = $markup;
  }
}

[theme_name]আপনার থিমের নাম এবং html_dateআপনার পছন্দসই সময় বিন্যাসের সাথে প্রতিস্থাপন করুন , যা আপনি নীচে খুঁজে পান /admin/config/regional/date-time


-1

আমি নোডের জন্য নিচের কোডটি ব্যবহার করেছি - নিবন্ধ - full.html.twig:

<li class="post-date">
    {% set day = node.createdtime|date("d") %}
      <span class="day">{{ day }}</span>
    {% set month = node.createdtime|date("M") %}
        <span class="month">{{ month }}</span>
 </li>


{% set date = node.createdtime|date("M d, Y") %}
   <span>{{ date }}</span>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.