একটি জাভাস্ক্রিপ্ট তারিখ ফর্ম্যাট কিভাবে


2217

জাভাস্ক্রিপ্টে, আমি কীভাবে মুদ্রণের জন্য কোনও তারিখ অবজেক্টটি ফর্ম্যাট করতে পারি 10-Aug-2010?


204
যথারীতি: সাবধান থাকুন মাসটি শূন্য-সূচিত! সুতরাং জানুয়ারী এক নয় শূন্য ...
ক্রিস্টোফ রাউসি

12
এছাড়াও সাবধান, myDate.getDay()সপ্তাহের দিনটি ফেরত দেয় না, তবে সপ্তাহের সাথে সম্পর্কিত সাপ্তাহিক দিনের অবস্থানবর্তমান সপ্তাহের দিনmyDate.getDate() ফেরত দেয় ।
জিমনেমেক্স

3
জাভাস্ক্রিপ্টে ডেটটাইমস ফর্ম্যাট করার জন্য Intl.DateTimeFormatঅবজেক্টটি ব্যবহার করুন । আমি আমার পোস্টে এটি বর্ণনা: পোস্ট । আমি আপনার উত্তরের জন্য একটি অনলাইন সমাধান তৈরি করে Intl.DateTimeFormat চেক অনলাইন
ইমান বাহরামপুর

5
আপনি ব্যবহার করতে পারেনtoLocaleDateString
onmyway133

11
ইউএসএলকে স্ট্যান্ডার্ডাইজড অবজেক্ট হিসাবে পেতে এত দীর্ঘ সময় লেগেছিল, যেখানে আপনি কোনও ক্যোয়ারী প্যারাম কী বের করতে পারেন, প্রোটোকলটি ধরে ফেলতে পারেন, শীর্ষ স্তরের ডোমেন দখল করতে পারেন ইত্যাদি তারা ES6 ES7 তৈরি করতে পারে তবে এখনও একটি স্ট্যান্ডার্ড তারিখ রাখতে পারে না 2019 এর টাইম ফরম্যাটার / পার্সার? দেখে মনে হচ্ছে তারা "হুমম হ্যাঁ ... পৃথিবীতে জাভাস্ক্রিপ্ট ব্যবহার করে যারা নিয়মিত সময় ও তারিখ নিয়ে কাজ করার প্রয়োজন ছিল ...."
আহনবিজক্যাড

উত্তর:


1284

কাস্টম-সীমানাঙ্কিত তারিখের ফর্ম্যাটগুলির জন্য, আপনাকে কোনও DateTimeFormatঅবজেক্ট (যা ECMAScript আন্তর্জাতিকীকরণ API এর অংশ ) থেকে তারিখ (বা সময়) উপাদানগুলি বের করতে হবে এবং তারপরে আপনি চান সেই ডেলিমেটারগুলির সাথে ম্যানুয়ালি একটি স্ট্রিং তৈরি করতে হবে।

এটি করতে, আপনি ব্যবহার করতে পারেন DateTimeFormat#formatToParts:

const date = new Date('2010-08-05')
const dateTimeFormat = new Intl.DateTimeFormat('en', { year: 'numeric', month: 'short', day: '2-digit' }) 
const [{ value: month },,{ value: day },,{ value: year }] = dateTimeFormat .formatToParts(date ) 

console.log(`${day}-${month}-${year }`)
console.log(`${day}👠${month}👢${year}`) // just for fun

আপনি DateTimeFormatব্যবহার করে একের পর একের অংশগুলিও বের করতে পারেন DateTimeFormat#format, তবে নোট করুন যে এই পদ্ধতিটি ব্যবহার করার সময়, ২০২০ সালের মার্চ পর্যন্ত, মিনিট এবং সেকেন্ডে শীর্ষস্থানীয় শূন্যগুলি আসে যখন ECMAScript প্রয়োগে একটি বাগ রয়েছে is উপরোক্ত পদ্ধতির দ্বারা পরিবর্তিত হয়)।

const d = new Date('2010-08-05')
const ye = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(d)
const mo = new Intl.DateTimeFormat('en', { month: 'short' }).format(d)
const da = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(d)

console.log(`${da}-${mo}-${ye}`)

তারিখ এবং সময় নিয়ে কাজ করার সময়, ক্ষেত্রটির অনেকগুলি লুকানো জটিলতার কারণে সাধারণত একটি লাইব্রেরি (উদাহরণস্বরূপ moment.js , লাক্সন ) ব্যবহার করা উপযুক্ত ।

নোট করুন যে উপরের সমাধানগুলিতে ব্যবহৃত ECMAScript আন্তর্জাতিকীকরণ এপিআই IE10 ( ফেব্রুয়ারী 2020 সালে 0.03% গ্লোবাল ব্রাউজারের বাজারে) সমর্থিত নয় ।


368
এর পরিবর্তে মোমেন্ট.জেস বা ডেট.জেএস এর মতো লাইব্রেরিটি ব্যবহার করার বিষয়টি সত্যই বিবেচনা করুন। এই সমস্যাটি বহুবার সমাধান করা হয়েছে।
বেনজমিন ওকে

239
তারা কেন এটি করতে কোনও ফাংশন অন্তর্ভুক্ত Dateকরে না?
নয়ন

68
একটি গুরুত্বপূর্ণ বিষয় হ'ল getMonth () পদ্ধতিটি 0 ভিত্তিক মাসের সূচক ফেরত দেয় যেমন উদাহরণস্বরূপ জানুয়ারী 0 ফেব্রুয়ারি ফিরে আসবে 1 ইত্যাদি ...
মার্কো

627
moment.js 2.9.0 11.6k গিজিপযুক্ত, উদাহরণটি 211 বাইট গিজিপ করা হয়েছে।
মির্জমিয়ার

26
লক্ষ্য করা উচিত যে আপনার কখনই কখনও ডকুমেন্ট.রাইট () ব্যবহার করা উচিত নয়। বিশাল সুরক্ষা এবং কার্য সম্পাদনের সমস্যা
ম্যাট জেনসেন

2001

আপনার যদি বর্তমানে গৃহীত উত্তরের চেয়ে ফর্ম্যাটিংয়ের উপর কিছুটা কম নিয়ন্ত্রণের প্রয়োজন হয়, তবে Date#toLocaleDateStringস্ট্যান্ডার্ড লোকেল-নির্দিষ্ট রেন্ডারিংগুলি তৈরি করতে ব্যবহার করা যেতে পারে। localeএবং optionsআর্গুমেন্ট অ্যাপ্লিকেশনের ভাষা যার বিন্যাস নিয়মাবলী ব্যবহার করা উচিত উল্লেখ, এবং রেন্ডারিং কিছু স্বনির্ধারণ অনুমতি দেয় না।

বিকল্প কী উদাহরণ:

  1. দিন: দিনের
    উপস্থাপনা।
    সম্ভাব্য মানগুলি হ'ল "সাংখ্যিক", "2-অঙ্ক"।
  2. সপ্তাহের দিন: সপ্তাহের দিন
    উপস্থাপনা।
    সম্ভাব্য মানগুলি হ'ল সংকীর্ণ "," সংক্ষিপ্ত "," দীর্ঘ "।
  3. বছর: বছরের
    উপস্থাপনা।
    সম্ভাব্য মানগুলি হ'ল "সাংখ্যিক", "2-অঙ্ক"।
  4. মাস: মাসের
    উপস্থাপনা।
    সম্ভাব্য মানগুলি হ'ল "সাংখ্যিক", "2-অঙ্ক", "সংকীর্ণ", "সংক্ষিপ্ত", "দীর্ঘ"।
  5. ঘন্টা: ঘন্টা
    উপস্থাপনা।
    সম্ভাব্য মানগুলি হ'ল "সাংখ্যিক", "2-অঙ্ক"।
  6. মিনিট: মিনিটের উপস্থাপনা।
    সম্ভাব্য মানগুলি হ'ল "সাংখ্যিক", "2-অঙ্ক"।
  7. দ্বিতীয়: দ্বিতীয়
    প্রতিনিধিত্ব।
    সম্ভাব্য মানগুলি হ'ল "সাংখ্যিক", 2-অঙ্ক "।

এই সমস্ত কী alচ্ছিক। আপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে বিকল্পগুলির মানগুলির সংখ্যা পরিবর্তন করতে পারেন এবং এটি প্রতিটি তারিখের সময়কালের উপস্থিতিও প্রতিফলিত করবে।

দ্রষ্টব্য: আপনি যদি কেবল বিষয়বস্তু বিকল্পগুলি কনফিগার করতে চান তবে এখনও বর্তমান লোকেলটি ব্যবহার করেন, nullপ্রথম প্যারামিটারের জন্য পাস করার ফলে ত্রুটি ঘটবে। undefinedপরিবর্তে ব্যবহার করুন।

বিভিন্ন ভাষার জন্য:

  1. "এন-ইউএস": ইংরেজির জন্য
  2. "হাই-ইন": হিন্দিতে
  3. "জা-জেপি": জাপানিদের জন্য

আপনি আরও ভাষা বিকল্প ব্যবহার করতে পারেন।

উদাহরণ স্বরূপ

var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
var today  = new Date();

console.log(today.toLocaleDateString("en-US")); // 9/17/2016
console.log(today.toLocaleDateString("en-US", options)); // Saturday, September 17, 2016
console.log(today.toLocaleDateString("hi-IN", options)); // शनिवार, 17 सितंबर 2016

আপনি toLocaleString()একই উদ্দেশ্যে পদ্ধতিটিও ব্যবহার করতে পারেন । পার্থক্য হ'ল এই ফাংশনটি এমন সময় সরবরাহ করে যখন আপনি কোনও বিকল্প পাস করেন না।

// Example
9/17/2016, 1:21:34 PM

তথ্যসূত্র:


45
moment.jsএকটি সাধারণ ফর্ম্যাট জন্য প্রায় ব্যবহার করা হয়েছিল । ভাগ্যক্রমে একটি অতিরিক্ত গুগল অনুসন্ধান করেছেন এবং এটি ইতিমধ্যে নেটিভ এপিআই রয়েছে বলে সন্ধান করুন। একটি বাহ্যিক নির্ভরতা সংরক্ষণ করা। অসাধারণ!
লিওন - হান লি

21
মনে হচ্ছে এই উত্তরটি সেরা "বর্তমান" উত্তর হওয়া উচিত। 24 ঘন্টা বনাম 24-ঘন্টা বিন্যাস ব্যবহার করতে "ঘন্টা 12: সত্য" বিকল্পটিও ব্যবহার করা হয়েছে। উত্তরে আপনার সংক্ষিপ্ত তালিকায় যুক্ত করা উচিত।
ডগ নুডসেন

14
আমি এই উত্তরে আপত্তি পাই না। এটি প্রশ্নের সমাধান করে না। (যেমন আমাকে একটি তারিখ দিন যা 10-আগস্ট-2010-এর মতো দেখাচ্ছে)। ToLocaleDateString () ব্যবহার করা বেশ কঠিন। তারিখ.ফর্ম্যাট লাইব্রেরিটি আরও ভাল সমাধান বলে মনে হচ্ছে (কমপক্ষে নোড ব্যবহারকারীদের জন্য)
Iarwa1n

3
undefinedপ্রথম স্থানীয় প্যারামিটার হিসাবে পাস করা যদি নির্বিচারে অনুভূত হয় তবে আপনি পরিবর্তে "default"এমডিএন ডক্স ডেভেলপার
মোমিজিলা.অর্গ

3
@ Iarwa1n এই উত্তরটির উল্লেখ নেই তবে আপনি লোকালডেটস্ট্রিং ব্যবহার করতে পারেন কেবলমাত্র কিছু অংশ যা আপনি নিজের ইচ্ছামতো যোগদান করতে পারবেন। আমার উত্তর নীচে পরীক্ষা করুন। date.toLocaleDateString("en-US", { day: 'numeric' }) + "-"+ date.toLocaleDateString("en-US", { month: 'short' }) + "-" + date.toLocaleDateString("en-US", { year: 'numeric' })দেওয়া উচিত16-Nov-2019
কে বিজ

609

তারিখ.ফর্ম্যাট লাইব্রেরি ব্যবহার করুন :

var dateFormat = require('dateformat');
var now = new Date();
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");

আয়:

Saturday, June 9th, 2007, 5:46:21 PM 

এনপিএম তারিখের তারিখ

http://jsfiddle.net/phZr7/1/


4
এটি দীর্ঘতর সমাধানের মতো মনে হতে পারে তবে সংকুচিত এবং কোনও সাইটে খেজুর ব্যবহারের জন্য ব্যবহার করা ভাল সমাধান হতে পারে!
রবার্টপিট


19
উপরের প্লাগইনটিতে 14 টি মুক্ত সমস্যা রয়েছে। এমনকি আমি একটি পেয়েছি :(
অমিত কুমার গুপ্ত

6
আমি পেয়েছিrequire is not defined
হুলি

16
ওপি জেএস সমাধানের জন্য জিজ্ঞাসা করেছে
লুক প্রিং

523

আপনি দ্রুত প্লেইন জাভাস্ক্রিপ্ট, ব্যবহার ব্যবহার করে আপনার তারিখ বিন্যাস করার প্রয়োজন হলে getDate, getMonth + 1, getFullYear, getHoursএবং getMinutes:

var d = new Date();

var datestring = d.getDate()  + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " +
d.getHours() + ":" + d.getMinutes();

// 16-5-2015 9:50

অথবা, আপনার যদি এটি জিরো দিয়ে প্যাড করার প্রয়োজন হয়:

var datestring = ("0" + d.getDate()).slice(-2) + "-" + ("0"+(d.getMonth()+1)).slice(-2) + "-" +
    d.getFullYear() + " " + ("0" + d.getHours()).slice(-2) + ":" + ("0" + d.getMinutes()).slice(-2);

// 16-05-2015 09:50

আপনি কি বলতে পারবেন যে সোমবার, 23 শে মার্চ 2018 এর মতো ফর্ম্যাট কিভাবে পাবেন ??
শচীন এইচআর

@SachinHR, পূর্ববর্তী উত্তর দেখুন: stackoverflow.com/a/34015511/4161032toLocaleDateString()স্থানীয় মাস / দিন নাম ব্যবহার তারিখ বিন্যাস পারবেন না।
sebastian.i

12
আপনি এর সাথে জিরোগুলিও প্যাড করতে পারেন.toString().padStart(2, '0')
বেনি জোবিগান

1
@ দিমিত্রিওএন, প্রয়োজনে, বছরটি একইভাবে প্যাড করা যেতে পারে:("000" + d.getFullYear()).slice(-4)
সেবাস্তিয়ান.আইই

4
@ বেনিজবিগান এটি উল্লেখ করা উচিত যে String.padStart()এটি কেবল
ইসমাস্ক্রিপ্ট

413

ঠিক আছে, আমি যা চেয়েছিলাম তা ছিল আজকের তারিখটিকে 2012-06-23 এর মতো একটি মাইএসকিউএল বন্ধুত্বপূর্ণ তারিখ স্ট্রিংয়ে রূপান্তর করা এবং সেই স্ট্রিংটিকে আমার প্রশ্নের যে কোনও একটিতে প্যারামিটার হিসাবে ব্যবহার করা। আমি যে সহজ সমাধানটি পেয়েছি তা হ'ল:

var today = new Date().toISOString().slice(0, 10);

মনে রাখবেন যে উপরের সমাধানটি আপনার টাইমজোন অফসেটটিকে বিবেচনা করে না

পরিবর্তে আপনি এই ফাংশনটি ব্যবহার বিবেচনা করতে পারেন:

function toJSONLocal (date) {
    var local = new Date(date);
    local.setMinutes(date.getMinutes() - date.getTimezoneOffset());
    return local.toJSON().slice(0, 10);
}

দিনের শুরু / শেষের দিকে আপনি এই কোডটি কার্যকর করছেন এমন ক্ষেত্রে এটি আপনাকে সঠিক তারিখ দেবে।


9
আপনি new Date(date + " UTC")সময় অঞ্চলটি কৌতুক করতে পারেন এবং আপনি সেটমিনিটস লাইনটি মুছে ফেলতে পারেন। মানুষ, জাভাস্ক্রিপ্টটি নোংরা
ভজক হার্মিসেকজ

23
ওয়াই 10 কে সামঞ্জস্যপূর্ণ সংস্করণ: var today = new Date().toISOString().slice(0,-14):)
অ্যালেক্স শ্যাফার

22
বা এর মতোnew Date().toISOString().split('T')[0]
রোফ্রোল

4
new Date().toISOString().slice(0, 16).replace('T',' ')সময় অন্তর্ভুক্ত করতে
গেরি ভ্যান উইক

3
শুধু মন্তব্য করে যে টাইমজোনটির অভাব "দিনের শুরু / শেষের দিকে" কিছুটা ছোট অসুবিধা নয়। উদাহরণস্বরূপ, অস্ট্রেলিয়ায় তারিখটি প্রায় 11 টা পর্যন্ত প্রায় ভুল হতে পারে - প্রায় অর্ধেক দিন!
স্টিভ বেনেট

228

কাস্টম ফর্ম্যাটিং ফাংশন:

স্থির ফর্ম্যাটগুলির জন্য, একটি সাধারণ ফাংশন কাজটি করে। নিম্নলিখিত উদাহরণটি YYYY-MM-DD আন্তর্জাতিক ফর্ম্যাটটি উত্পন্ন করে:

function dateToYMD(date) {
    var d = date.getDate();
    var m = date.getMonth() + 1; //Month from 0 to 11
    var y = date.getFullYear();
    return '' + y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
}

console.log(dateToYMD(new Date(2017,10,5))); // Nov 5

ওপি ফর্ম্যাটটি উত্পন্ন হতে পারে:

function dateToYMD(date) {
    var strArray=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var d = date.getDate();
    var m = strArray[date.getMonth()];
    var y = date.getFullYear();
    return '' + (d <= 9 ? '0' + d : d) + '-' + m + '-' + y;
}
console.log(dateToYMD(new Date(2017,10,5))); // Nov 5

দ্রষ্টব্য: তবে সাধারণত জাভাস্ক্রিপ্ট স্ট্যান্ডার্ড লাইব্রেরিগুলি বাড়ানো ভাল ধারণা নয় (যেমন তারিখের প্রোটোটাইপে এই ফাংশনটি যুক্ত করে)।

আরও উন্নত ফাংশন একটি ফর্ম্যাট প্যারামিটারের ভিত্তিতে কনফিগারযোগ্য আউটপুট তৈরি করতে পারে।

যদি একটি ফর্ম্যাটিং ফাংশন লিখতে খুব দীর্ঘ হয়, এখানে প্রচুর লাইব্রেরি রয়েছে যা এটি করে। আরও কিছু উত্তর ইতিমধ্যে সেগুলি গণনা করেছে। তবে ক্রমবর্ধমান নির্ভরতাও এর পাল্টা অংশ রয়েছে।

স্ট্যান্ডার্ড ECMAScript ফর্ম্যাটিং ফাংশন:

ECMAScript এর আরও সাম্প্রতিক সংস্করণ থেকে, Dateশ্রেণীর কিছু নির্দিষ্ট বিন্যাসের কার্য রয়েছে:

টোডেটস্ট্রিং : বাস্তবায়ন নির্ভর, কেবল তারিখটি দেখান।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.todatestring

new Date().toDateString(); // e.g. "Fri Nov 11 2016"

টোআইএসএসটিং : আইএসও 8601 তারিখ এবং সময় দেখান।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.toisostring

new Date().toISOString(); // e.g. "2016-11-21T08:00:00.000Z"

toJSON : জেএসএনের জন্য স্ট্রিংফায়ার।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tojson

new Date().toJSON(); // e.g. "2016-11-21T08:00:00.000Z"

toLocaleDateString : বাস্তবায়ন নির্ভর, স্থানীয় ফর্ম্যাট একটি তারিখ।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocaledatestring

new Date().toLocaleDateString(); // e.g. "21/11/2016"

ToLocaleString : বাস্তবায়ন নির্ভর, স্থানীয় ফর্ম্যাটে একটি তারিখ এবং সময়।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocalestring

new Date().toLocaleString(); // e.g. "21/11/2016, 08:00:00 AM"

ToLocaleTimeString : বাস্তবায়ন নির্ভর, স্থানীয় বিন্যাসে একটি সময়।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocaletimestring

new Date().toLocaleTimeString(); // e.g. "08:00:00 AM"

টস্ট্রিং : তারিখের জন্য জেনেরিক টুস্ট্রিং।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tostring

new Date().toString(); // e.g. "Fri Nov 21 2016 08:00:00 GMT+0100 (W. Europe Standard Time)"

দ্রষ্টব্য: এই ফর্ম্যাটিং> এর বাইরে কাস্টম আউটপুট উত্পন্ন করা সম্ভব

new Date().toISOString().slice(0,10); //return YYYY-MM-DD

উদাহরণ স্নিপেটস:

console.log("1) "+  new Date().toDateString());
console.log("2) "+  new Date().toISOString());
console.log("3) "+  new Date().toJSON());
console.log("4) "+  new Date().toLocaleDateString());
console.log("5) "+  new Date().toLocaleString());
console.log("6) "+  new Date().toLocaleTimeString());
console.log("7) "+  new Date().toString());
console.log("8) "+  new Date().toISOString().slice(0,10));


3
শেষের জন্য ধন্যবাদ .. এইচটিএমএল তারিখ ইনপুটগুলির তারিখ মান নির্ধারণের জন্য দরকারী।
daCoda

new Date().toLocaleDateString()আপনাকে দয়া করে এটি সংশোধন করে mm/dd/yyyyনা dd/mm/yyyy
আরভি

1
@ রাজনভির্মা: টু লোকালডেটস্ট্রিং আপনার লোকেল সরবরাহ করে যা সম্ভবত মিমি / ডিডি / ইয়াই কারণ আপনি মার্কিন যুক্তরাষ্ট্রে রয়েছেন। এখানে, তারিখের জন্য লোকেলটি ডিডি / মিমি / ইয়াহী (এটি হ'ল "স্থানীয়" এর বিন্দু)। আমি "উদাহরণস্বরূপ" লিখেছিলাম কারণ এটি স্পেসিফিকেশন নয়, তবে আউটপুটের উদাহরণ।
অ্যাড্রিয়ান মায়ার

177

আপনি যদি ইতিমধ্যে আপনার প্রকল্পে jQuery UI ব্যবহার করে থাকেন তবে আপনি এটি এইভাবে করতে পারেন:

var formatted = $.datepicker.formatDate("M d, yy", new Date("2014-07-08T09:02:21.377"));

// formatted will be 'Jul 8, 2014'

সাথে খেলতে কিছু তারিখ-পিকারের তারিখ বিন্যাসের বিকল্পগুলি এখানে উপলভ্য ।


13
যেমনটি আমি বলেছি - যদি jQueryUI ইতিমধ্যে প্রকল্পে ব্যবহৃত হয় - তবে ডেটপিকারের তারিখ বিন্যাসকরণ ফাংশনটি পুনরায় ব্যবহার করবেন না কেন? ওহে ছেলেরা, আমি আমার উত্তরে নেতিবাচক ভোট কেন পাচ্ছি তা আমি গুরুত্ব দিচ্ছি না? দয়া করে ব্যাখ্যা করুন.
দিমিত্রি পাভলভ

7
এটি হতে পারে কারণ কেউ jQuery UI কেবলমাত্র তারিখের ফর্ম্যাট ফাংশনের জন্য অন্তর্ভুক্ত করতে পারে বা ডেটপিকারটি লাইব্রেরির একটি alচ্ছিক অংশ হতে পারে, তবে সম্ভবত এটি jQueryকে ঘৃণা করা ফ্যাশনেবল।
সনেট

12
আমি মনে করি না যে ভুল করে বা জ্ঞানের অনুপস্থিতিতে কেউ যে অদ্ভুত সিদ্ধান্ত নিতে পারে তা সম্পূর্ণভাবে এড়ানো সম্ভব is
দিমিত্রি পাভলভ

7
@ এসনেট: jQuery ঘৃণা ফ্যাশনেবল? আপনার প্যান্টগুলি আপনার পায়ে অর্ধেক নীচে ঘুরে বেড়াচ্ছে, আমি মনে করি ... যা জাভাস্ক্রিপ্টের ইতিহাসের বেশিরভাগ ক্ষেত্রে jQuery ছাড়াই কোড করার চেষ্টা করা ছিল ...
মাইকেল শেপার

5
যাইহোক, এটি একটি সহায়ক এবং সম্পূর্ণ যুক্তিসঙ্গত উত্তর — আবারও, 70% ওয়েবসাইট jQuery ব্যবহার করে। এটি বিকাশকারীদের ধর্মীয় বিশ্বাসের কারণে হ্রাস করা উচিত নয়।
মাইকেল শ্যাপার 21

133

আমি মনে করি আপনি কেবল অ-মানক তারিখ পদ্ধতিটি ব্যবহার করতে পারেনtoLocaleFormat(formatString)

formatString:strftime() সি এর ফাংশন দ্বারা প্রত্যাশিত একই বিন্যাসে একটি বিন্যাস স্ট্রিং

var today = new Date();
today.toLocaleFormat('%d-%b-%Y'); // 30-Dec-2011

তথ্যসূত্র:


160
toLocaleFormat () কেবল ফায়ারফক্সে কাজ করে। আইই ও ক্রোম উভয়ই আমার পক্ষে ব্যর্থ হচ্ছে।
ফিটজগেরাল্ডস্টিল

16
ক্রোমের .toLocaleString ('en') পদ্ধতি রয়েছে। যেহেতু মনে হচ্ছে নতুন ব্রাউজার এই বিকাশকারীকে
apocalypz


6
এটি কার্যকর সমাধান যদি সবাই এটিকে কার্যকর করতে পারে। অভিশাপ আপনি অর্থাৎ / ক্রোম
সান্তা

6
@ সান্তা: আসলেই। এটি সম্পর্কে মোজিলার নেতৃত্ব অনুসরণ না করার উপযুক্ত কারণ থাকতে পারে তবে ES6 এরও কোনও মানক কার্যকারিতা নেই তা প্রমাণ করে যে এটি এখনও হ্যাকারের ভাষা, বিকাশকারীর ভাষা নয়।
মাইকেল শ্যাপার

105

সরল জাভাস্ক্রিপ্ট ছোট অ্যান্টিমারদের জন্য সেরা চয়ন।

অন্যদিকে, আপনার যদি আরও তারিখের জিনিসগুলির প্রয়োজন হয় তবে মোমেন্টজজেএস একটি দুর্দান্ত সমাধান।

উদাহরণ স্বরূপ:

moment().format('YYYY-MM-DD HH:m:s');     // now() -> 2015-03-24 14:32:20
moment("20111031", "YYYYMMDD").fromNow(); // 3 years ago
moment("20120620", "YYYYMMDD").fromNow(); // 3 years ago
moment().startOf('day').fromNow();        // 11 hours ago
moment().endOf('day').fromNow();          // in 13 hours

2
উল্লেখ করার জন্য গুরুত্বপূর্ণ: YYYYআপনি YYYYএবং এর মধ্যে পার্থক্যটি না জানলে ব্যবহার করবেন না yyyy: স্ট্যাকওভারফ্লো
ডোমিন

@ ডোমেন যা আইওএসে এনএসডিট ফরমেটারের সাথে সুনির্দিষ্ট, এই প্রশ্নটি ব্রাউজারে জাভাস্ক্রিপ্ট সম্পর্কে, এবং এই উত্তরটি মোমেন্টজেএস ব্যবহার করে, যেখানে YYYY(নয় yyyy) মানক বছর এবং GGGG(নয় YYYY) আইএসও সপ্তাহ ভিত্তিক বছর year
মার্ক রিড

2
মুহুর্তটি 100% অচল নয় @ জেরি
লিয়াম

97

আধুনিক ব্রাউজারগুলিতে (*) আপনি কেবল এটি করতে পারেন:

var today = new Date().toLocaleDateString('en-GB', {
    day : 'numeric',
    month : 'short',
    year : 'numeric'
}).split(' ').join('-');

আজ কার্যকর হলে আউটপুট (জানুয়ারি 24ᵗʰ, 2016):

'24-Jan-2016'

(*) এমডিএন অনুসারে , "আধুনিক ব্রাউজারগুলি" এর অর্থ ক্রোম 24+, ফায়ারফক্স 29+, ইন্টারনেট এক্সপ্লোরার 11, এজ 12+, অপেরা 15+ এবং সাফারি রাতের বিল্ড


এই ফাংশনটি সমর্থিত কিনা তা যাচাই করার কোনও উপায় আছে এবং যদি না হয় তবে একটি সহজ সমাধানে ডিফল্ট?
জেমস ওয়েয়ারজবা

@ জেমস ওয়েয়ারজবা: আপনি এই পলিফিলটি ব্যবহার করতে পারেন !
জন স্লেজার

এটি caniuse.com এও তালিকাভুক্ত নয়: /
চার্লস উড

51

আপনার ডেট.জেস দেখতে হবে । এটি তারিখগুলি নিয়ে কাজ করার জন্য অনেক সুবিধাজনক সহায়ককে যুক্ত করে, উদাহরণস্বরূপ, আপনার ক্ষেত্রে:

var date = Date.parse('2010-08-10');
console.log(date.toString('dd-MMM-yyyy'));

শুরু করা: http://www.datejs.com/2007/11/27/getting-st সূত্র-with-datejs/


ধন্যবাদ। এটি একটি ছোট পায়ের ছাপ সহ একটি খুব বিস্তৃত এবং সম্পূর্ণ গ্রন্থাগার।
মিচেলঝে

আমি মনে করি বর্তমানে আমি ডেট.পার্স থেকে একটি নম্বর পাচ্ছি যখন লেট ডেট = নতুন তারিখ (স্ট্রিং) এর আরও কার্যকারিতা রয়েছে। দুর্ভাগ্যক্রমে আমার স্ট্রিংয়ের কাছে স্ট্রিংটি বিন্যাসের জন্য পাস হওয়া যুক্তিকে ব্যাখ্যা না করে কেবল একটি ডিফল্ট প্রদর্শিত হবে বলে মনে হচ্ছে। নোডজেএস 11+ টু ডেটস্ট্রিং ব্যবহার করা একটি স্বল্প আউটপুট তবে বিন্যাস গ্রহণ করে না। আমি যা দেখি তা সমস্তই লোকালডেট স্ট্রিংয়ের কাছে অত্যন্ত সংশ্লেষ
মাস্টার জেমস

38

আমি আপনার অনুরোধ করা ফর্ম্যাটটি কোনও লাইব্রেরি এবং কোনও তারিখ পদ্ধতি ব্যবহার করে এক লাইনে পেতে পারি, কেবলমাত্র রেজেক্স:

var d = (new Date()).toString().replace(/\S+\s(\S+)\s(\d+)\s(\d+)\s.*/,'$2-$1-$3');
// date will be formatted as "14-Oct-2015" (pass any date object in place of 'new Date()')

আমার পরীক্ষায়, এটি প্রধান ব্রাউজারগুলিতে (ক্রোম, সাফারি, ফায়ারফক্স এবং আই।) নির্ভরযোগ্যভাবে কাজ করে যেমন @ রবজি উল্লেখ করেছে যে ডেট.প্রোটোটাইপ.টোস্ট্রিং () এর ফলাফল আউটপুট বাস্তবায়ন-নির্ভর, তাই আউটপুটটি নিশ্চিত হওয়ার জন্য পরীক্ষা করুন এটি ঠিক আপনার জাভাস্ক্রিপ্ট ইঞ্জিনে কাজ করে। এমনকি স্ট্রিং আউটপুট পরীক্ষা করার জন্য আপনি কিছু কোড যুক্ত করতে পারেন এবং এটি নিশ্চিত করতে পারেন যে আপনি পুনর্বিবেচনা প্রতিস্থাপনের আগে যা প্রত্যাশা করছেন তা এটি মিলেছে।


console.log(new Date().toString().replace(/\S+\s(\S+)\s(\d+)\s(\d+)\s.*/,'$2-$1-$3'));
জন

@ আন্দ্রে - আমি সম্মত এটি যদি আমার কোড হয় তবে আমি অবশ্যই এটির পাশাপাশি একটি মন্তব্য অন্তর্ভুক্ত করব যা রেজেক্সকে ব্যাখ্যা করে এবং ইনপুট এবং সংশ্লিষ্ট আউটপুটটির একটি উদাহরণ দেয়।
জেডি স্মিথ 21

কিভাবে সময় অংশ (এইচ এইচ: মিমি: এসএস)?
unruledboy

@unruledboy var d = (নতুন তারিখ ())। toString ()। (/ \ S + \ s (\ S +) \ s (\ d +) \ s (\ d +) \ s (\ S +) \ s। * / প্রতিস্থাপন করুন , '$ 2- $ 1- $ 3 $ 4'); - অথবা তারিখটি ছাড়াই কেবল সময়ের অংশ পেতে, ব্যবহার করুন: var d = (নতুন তারিখ ())। টু স্ট্রিং ()। প্রতিস্থাপন (/ \ এস + \ s (\ এস +) \ গুলি (\ ডি +) \ এস (\ D +) \ গুলি (\ s +) \ গুলি * / '$ 4')।
জেডি স্মিথ

37

@ সাবাসতিয়েন - বিকল্প সমস্ত ব্রাউজার সমর্থন

new Date(parseInt(496407600)*1000).toLocaleDateString('de-DE', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}).replace(/\./g, '/');

ডকুমেন্টেশন: https://developer.mozilla.org/en-US/docs/Web/ জাভা স্ক্রিপ্ট / রেফারেন্স / গ্লোবাল_অবজেক্টস / তারিখ / টো লোকালডেট স্ট্রিং


5
.Replace () না করার পরিবর্তে আপনি কেবল 'এন-জিবি' লোকেল হিসাবে ব্যবহার করতে পারেন। :)
রবার্তো 14

1
এই সত্যিই চমৎকার, যেমন হয় new Date().toLocaleDateString("en-EN", {month: "short", weekday: "short", day: "2-digit", year: "numeric"})আয়"Wed, Sep 06, 2017"
পিটার টি।

37

ঠিক আছে , আমরা ইন্টেল নামে একটি জিনিস পেয়েছি যা আজকাল জাভাস্ক্রিপ্টে একটি তারিখ ফর্ম্যাট করার জন্য খুব দরকারী:

নীচের মত আপনার তারিখ:

var date = '10/8/2010';

এবং আপনি নীচে মত নতুন তারিখ () ব্যবহার করে তারিখে পরিবর্তন করুন:

date = new Date(date);

এবং এখন আপনি নীচের মতো লোকেলের তালিকা ব্যবহার করে যে কোনও উপায়ে ফর্ম্যাট করতে পারেন :

date = new Intl.DateTimeFormat('en-AU').format(date); // Australian date format: "8/10/2010" 


date = new Intl.DateTimeFormat('en-US').format(date); // USA date format: "10/8/2010" 


date = new Intl.DateTimeFormat('ar-EG').format(date);  // Arabic date format: "٨‏/١٠‏/٢٠١٠"

আপনি উপরে উল্লিখিত বিন্যাসটি যদি সঠিকভাবে চান তবে আপনি এটি করতে পারেন:

date = new Date(Date.UTC(2010, 7, 10, 0, 0, 0));
var options = {year: "numeric", month: "short", day: "numeric"};
date = new Intl.DateTimeFormat("en-AU", options).format(date).replace(/\s/g, '-');

এবং ফলাফল হতে যাচ্ছে:

"10-Aug-2010"

আরও জানতে ইন্টি এপিআই এবং ইন্টেল ডেটটাইম ফর্ম্যাট ডকুমেন্টেশন দেখুন।


আইই দ্বারা সমর্থিত নয়
প্যান্টগুলি

এটি কেবলমাত্র আইই 11, আই 10 দ্বারা- এটি বিদ্যমান থাকার আগেই জীবনযাত্রার বাইরে চলে গেছে তাই এটি বোধগম্য। ক্যানিউজ থেকে 92%, যা বেশ ভাল caniuse.com/#search=datetimeformat
Tofandel

32

ECMAScript সংস্করণ 6 (ES6 / ES2015) স্ট্রিং টেম্পলেট ব্যবহার করে:

let d = new Date();
let formatted = `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}`;

আপনার যদি সীমানা পরিবর্তন করতে হয়:

const delimiter = '/';
let formatted = [d.getFullYear(), d.getMonth() + 1, d.getDate()].join(delimiter);

30

প্যাকেজযুক্ত সমাধান: লাক্সন

যদি আপনি সমস্ত কিছু ফিট করার জন্য একটি সমাধান ব্যবহার করতে চান তবে আমি লাক্সন ( মোমেন্ট.জেএস এর একটি আধুনিক সংস্করণ) ব্যবহার করার পরামর্শ দিচ্ছি ) যা অনেকগুলি লোকাল / ভাষা এবং টন অন্যান্য বৈশিষ্ট্যগুলিতে ফর্ম্যাটও করে।

লাকসন মোমেন্ট.জেএস ওয়েবসাইটে হোস্ট করা হয় এবং মোমেন্ট.জেএস বিকাশকারী দ্বারা বিকাশ করা হয় কারণ মোমেন্ট.জেসের সীমাবদ্ধতা রয়েছে যা বিকাশকারী সম্বোধন করতে চেয়েছিলেন তবে পারেনি।

স্থাপন করা:

npm install luxonঅথবা yarn add luxon(অন্যান্য ইনস্টলেশন পদ্ধতির জন্য লিঙ্কটি দেখুন)

উদাহরণ:

luxon.DateTime.fromISO('2010-08-10').toFormat('yyyy-LLL-dd');

উৎপাদনের:

10 আগস্ট-2010

ম্যানুয়াল সমাধান

মোমেন্ট.জেএস, ক্লাস ডেটটাইম ফর্ম্যাটার (জাভা) এবং ক্লাস সিম্পলডেট ফরম্যাট (জাভা) হিসাবে অনুরূপ ফর্ম্যাটিং ব্যবহার করে , আমি একটি বিস্তৃত সমাধান বাস্তবায়ন করেছি formatDate(date, patternStr)যেখানে কোডটি পড়া এবং সংশোধন করা সহজ। আপনি তারিখ, সময়, এএম / প্রধানমন্ত্রী ইত্যাদি প্রদর্শন করতে পারেন আরও উদাহরণের জন্য কোড দেখুন।

উদাহরণ:

formatDate(new Date(), 'EEEE, MMMM d, yyyy HH:mm:ss:S')

( formatDateনীচে কোড স্নিপেটে প্রয়োগ করা হয়)

উৎপাদনের:

শুক্রবার, 12 অক্টোবর, 2018 18: 11: 23: 445 |

"কোড স্নিপেট চালান" ক্লিক করে কোডটি চেষ্টা করে দেখুন।

তারিখ এবং সময় প্যাটার্নস

yy= 2-অঙ্কের বছর; yyyy= পুরো বছর

M= অঙ্কের মাস; MM= 2-অঙ্কের মাস; MMM= স্বল্প মাসের নাম;MMMM= পুরো মাসের নাম

EEEE= পুরো সপ্তাহের নাম; EEE= ছোট সপ্তাহের নাম

d= অঙ্কের দিন; dd= 2-অঙ্কের দিন

h= ঘন্টা am / pm; hh= 2-ডিজিট ঘন্টা am / pm; H= ঘন্টা; HH= 2-অঙ্কের ঘন্টা

m= মিনিট; mm= 2-অঙ্কের মিনিট; aaa= এএম / পিএম

s= সেকেন্ড; ss= 2-সেকেন্ড সেকেন্ড

S = মিলিসেকেন্ড

var monthNames = [
  "January", "February", "March", "April", "May", "June", "July",
  "August", "September", "October", "November", "December"
];
var dayOfWeekNames = [
  "Sunday", "Monday", "Tuesday",
  "Wednesday", "Thursday", "Friday", "Saturday"
];
function formatDate(date, patternStr){
    if (!patternStr) {
        patternStr = 'M/d/yyyy';
    }
    var day = date.getDate(),
        month = date.getMonth(),
        year = date.getFullYear(),
        hour = date.getHours(),
        minute = date.getMinutes(),
        second = date.getSeconds(),
        miliseconds = date.getMilliseconds(),
        h = hour % 12,
        hh = twoDigitPad(h),
        HH = twoDigitPad(hour),
        mm = twoDigitPad(minute),
        ss = twoDigitPad(second),
        aaa = hour < 12 ? 'AM' : 'PM',
        EEEE = dayOfWeekNames[date.getDay()],
        EEE = EEEE.substr(0, 3),
        dd = twoDigitPad(day),
        M = month + 1,
        MM = twoDigitPad(M),
        MMMM = monthNames[month],
        MMM = MMMM.substr(0, 3),
        yyyy = year + "",
        yy = yyyy.substr(2, 2)
    ;
    // checks to see if month name will be used
    patternStr = patternStr
      .replace('hh', hh).replace('h', h)
      .replace('HH', HH).replace('H', hour)
      .replace('mm', mm).replace('m', minute)
      .replace('ss', ss).replace('s', second)
      .replace('S', miliseconds)
      .replace('dd', dd).replace('d', day)
      
      .replace('EEEE', EEEE).replace('EEE', EEE)
      .replace('yyyy', yyyy)
      .replace('yy', yy)
      .replace('aaa', aaa);
    if (patternStr.indexOf('MMM') > -1) {
        patternStr = patternStr
          .replace('MMMM', MMMM)
          .replace('MMM', MMM);
    }
    else {
        patternStr = patternStr
          .replace('MM', MM)
          .replace('M', M);
    }
    return patternStr;
}
function twoDigitPad(num) {
    return num < 10 ? "0" + num : num;
}
console.log(formatDate(new Date()));
console.log(formatDate(new Date(), 'dd-MMM-yyyy')); //OP's request
console.log(formatDate(new Date(), 'EEEE, MMMM d, yyyy HH:mm:ss.S aaa'));
console.log(formatDate(new Date(), 'EEE, MMM d, yyyy HH:mm'));
console.log(formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss.S'));
console.log(formatDate(new Date(), 'M/dd/yyyy h:mmaaa'));

ল্যাকসন আনার জন্য আপনাকে জেরি ধন্যবাদ।


1
যাইহোক, ঝামেলা SimpleDateFormatক্লাসটি ক্লাস দ্বারা বছর আগে দমন করা হয়েছিল java.time.format.DateTimeFormatter
তুলিল বাউরক

1
@ বাসিলবার্ক, উল্লেখ করেছেন। তারা উভয় একই প্যাটার্ন ব্যবহার। আমি 5 বছরের জন্য প্রাক-জাভা 8 প্রকল্পে ছিলাম তাই আমি কখনই নতুন স্টাফের কাছে প্রকাশ পাইনি। ধন্যবাদ!
lewdev

প্রায় অভিন্ন API সহ জাভা.টাইম কার্যকারিতা সর্বাধিক পেতে জাভা 6 এবং 7 এর জন্য থ্রিটেন-ব্যাকপোর্ট প্রকল্প দেখুন ।
তুলসী বাউরক

@ বাসিলবার্ক রেফারেন্সের জন্য ধন্যবাদ, তবে আমি আর এই প্রকল্পে কাজ করি না তবে আমি অবশ্যই এ বিষয়টি মাথায় রাখব।
lewdev

2
মুহূর্তটি অপ্রচলিত, লাক্সন ব্যবহার করুন
গেরি

19

আমি যে প্রকল্পে কাজ করছি তার তারিখ বিন্যাস পরিচালনা করার জন্য আমি এখানে কিছু কোড লিখেছি। এটি আমার প্রয়োজন অনুসারে পিএইচপি তারিখ বিন্যাস কার্যকারিতা নকল করে। এটি নির্দ্বিধায় অনুভব করুন, এটি কেবল ইতিমধ্যে বিদ্যমান তারিখ () অবজেক্টটিকে প্রসারিত করছে। এটি সবচেয়ে মার্জিত সমাধান নাও হতে পারে তবে এটি আমার প্রয়োজনের জন্য কাজ করছে।

var d = new Date(); 
d_string = d.format("m/d/Y h:i:s");

/**************************************
 * Date class extension
 * 
 */
    // Provide month names
    Date.prototype.getMonthName = function(){
        var month_names = [
                            'January',
                            'February',
                            'March',
                            'April',
                            'May',
                            'June',
                            'July',
                            'August',
                            'September',
                            'October',
                            'November',
                            'December'
                        ];

        return month_names[this.getMonth()];
    }

    // Provide month abbreviation
    Date.prototype.getMonthAbbr = function(){
        var month_abbrs = [
                            'Jan',
                            'Feb',
                            'Mar',
                            'Apr',
                            'May',
                            'Jun',
                            'Jul',
                            'Aug',
                            'Sep',
                            'Oct',
                            'Nov',
                            'Dec'
                        ];

        return month_abbrs[this.getMonth()];
    }

    // Provide full day of week name
    Date.prototype.getDayFull = function(){
        var days_full = [
                            'Sunday',
                            'Monday',
                            'Tuesday',
                            'Wednesday',
                            'Thursday',
                            'Friday',
                            'Saturday'
                        ];
        return days_full[this.getDay()];
    };

    // Provide full day of week name
    Date.prototype.getDayAbbr = function(){
        var days_abbr = [
                            'Sun',
                            'Mon',
                            'Tue',
                            'Wed',
                            'Thur',
                            'Fri',
                            'Sat'
                        ];
        return days_abbr[this.getDay()];
    };

    // Provide the day of year 1-365
    Date.prototype.getDayOfYear = function() {
        var onejan = new Date(this.getFullYear(),0,1);
        return Math.ceil((this - onejan) / 86400000);
    };

    // Provide the day suffix (st,nd,rd,th)
    Date.prototype.getDaySuffix = function() {
        var d = this.getDate();
        var sfx = ["th","st","nd","rd"];
        var val = d%100;

        return (sfx[(val-20)%10] || sfx[val] || sfx[0]);
    };

    // Provide Week of Year
    Date.prototype.getWeekOfYear = function() {
        var onejan = new Date(this.getFullYear(),0,1);
        return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
    } 

    // Provide if it is a leap year or not
    Date.prototype.isLeapYear = function(){
        var yr = this.getFullYear();

        if ((parseInt(yr)%4) == 0){
            if (parseInt(yr)%100 == 0){
                if (parseInt(yr)%400 != 0){
                    return false;
                }
                if (parseInt(yr)%400 == 0){
                    return true;
                }
            }
            if (parseInt(yr)%100 != 0){
                return true;
            }
        }
        if ((parseInt(yr)%4) != 0){
            return false;
        } 
    };

    // Provide Number of Days in a given month
    Date.prototype.getMonthDayCount = function() {
        var month_day_counts = [
                                    31,
                                    this.isLeapYear() ? 29 : 28,
                                    31,
                                    30,
                                    31,
                                    30,
                                    31,
                                    31,
                                    30,
                                    31,
                                    30,
                                    31
                                ];

        return month_day_counts[this.getMonth()];
    } 

    // format provided date into this.format format
    Date.prototype.format = function(dateFormat){
        // break apart format string into array of characters
        dateFormat = dateFormat.split("");

        var date = this.getDate(),
            month = this.getMonth(),
            hours = this.getHours(),
            minutes = this.getMinutes(),
            seconds = this.getSeconds();
        // get all date properties ( based on PHP date object functionality )
        var date_props = {
            d: date < 10 ? '0'+date : date,
            D: this.getDayAbbr(),
            j: this.getDate(),
            l: this.getDayFull(),
            S: this.getDaySuffix(),
            w: this.getDay(),
            z: this.getDayOfYear(),
            W: this.getWeekOfYear(),
            F: this.getMonthName(),
            m: month < 10 ? '0'+(month+1) : month+1,
            M: this.getMonthAbbr(),
            n: month+1,
            t: this.getMonthDayCount(),
            L: this.isLeapYear() ? '1' : '0',
            Y: this.getFullYear(),
            y: this.getFullYear()+''.substring(2,4),
            a: hours > 12 ? 'pm' : 'am',
            A: hours > 12 ? 'PM' : 'AM',
            g: hours % 12 > 0 ? hours % 12 : 12,
            G: hours > 0 ? hours : "12",
            h: hours % 12 > 0 ? hours % 12 : 12,
            H: hours,
            i: minutes < 10 ? '0' + minutes : minutes,
            s: seconds < 10 ? '0' + seconds : seconds           
        };

        // loop through format array of characters and add matching data else add the format character (:,/, etc.)
        var date_string = "";
        for(var i=0;i<dateFormat.length;i++){
            var f = dateFormat[i];
            if(f.match(/[a-zA-Z]/g)){
                date_string += date_props[f] ? date_props[f] : '';
            } else {
                date_string += f;
            }
        }

        return date_string;
    };
/*
 *
 * END - Date class extension
 * 
 ************************************/

18

কোনও জাভাস্ক্রিপ্ট সমাধান কোনও বাহ্যিক গ্রন্থাগার ব্যবহার না করে:

var now = new Date()
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
var formattedDate = now.getDate() + "-" + months[now.getMonth()] + "-" + now.getFullYear()
alert(formattedDate)

16

new Date().toLocaleDateString()

// "3/21/2018"

ডেভেলপার.মোজিলা.আরগ এ আরও ডকুমেন্টেশন


1
লক্ষ্য করা উচিত যে আপনার কখনই কখনও ডকুমেন্ট.রাইট () ব্যবহার করা উচিত নয়। বিশাল সুরক্ষা এবং পারফরম্যান্স সমস্যা
ইউজিন ফিদেলিন

15

আপনি যদি আপনার কোডটিতে jQuery UI ব্যবহার করেন তবে একটি ইনবিল্ট ফাংশন বলে formatDate()। আমি আজকের তারিখের ফর্ম্যাট করতে এটি এইভাবে ব্যবহার করছি:

var testdate = Date();
testdate = $.datepicker.formatDate( "d-M-yy",new Date(testdate));
alert(testdate);

JQuery UI ডকুমেন্টেশনে আপনি ফরম্যাটের তারিখের আরও অনেক উদাহরণ দেখতে পাচ্ছেন ।


15

এর জন্য আমাদের কাছে প্রচুর সমাধান রয়েছে তবে আমি মনে করি এর মধ্যে সেরা মুহূর্ত.জেএস। সুতরাং আমি ব্যক্তিগতভাবে Moment.js তারিখ এবং সময় অপারেশনের জন্য ব্যবহার করার পরামর্শ দিই।

console.log(moment().format('DD-MMM-YYYY'));
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>


আপনি jquery সহ কেন?
সিড করুন

1
ওহ দুঃখিত, এটির প্রয়োজন নেই। ধন্যবাদ @ সিড
বিজয় মাহেরিয়া

আমি moment.js তারিখটি কীভাবে সরবরাহ করব? আমি মনে করি এটি সর্বদা বর্তমান সময় নেয়।
ডেভ রঞ্জন 14

1
@ ডেভরঞ্জন আমার মনে হয় আপনার কাস্টম তারিখটি রূপান্তর করা দরকার। সুতরাং এটি ব্যবহার করুন: কনসোল.লগ (মুহূর্ত ('2016-08-10') format ফর্ম্যাট ('ডিডি-এমএমএম-ওয়াইওয়াইওয়াই'));
বিজয় মাহেরিয়া

হ্যাঁ, পরে এটি সন্ধান। ধন্যবাদ :)
ডেভ রঞ্জন

15

জাভাস্ক্রিপ্টে ডেটটাইমস ফর্ম্যাট করার জন্য একটি দরকারী এবং নমনীয় উপায় হ'ল Intl.DateTimeFormat:

var date = new Date();
var options = { year: 'numeric', month: 'short', day: '2-digit'};
var _resultDate = new Intl.DateTimeFormat('en-GB', options).format(date);
// The _resultDate is: "12 Oct 2017"
// Replace all spaces with - and then log it.
console.log(_resultDate.replace(/ /g,'-'));

ফলাফলটি হ'ল: "12-Oct-2017"

তারিখ এবং সময় ফর্ম্যাটগুলি বিকল্প যুক্তি ব্যবহার করে কাস্টমাইজ করা যায়।

Intl.DateTimeFormatবস্তু বস্তু যে ভাষা সংবেদনশীল তারিখ এবং সময় বিন্যাস সক্ষম একটি কন্সট্রাকটর হয়।

বাক্য গঠন

new Intl.DateTimeFormat([locales[, options]])
Intl.DateTimeFormat.call(this[, locales[, options]])

পরামিতি

লোকেল

ঐচ্ছিক। বিসিপি 47 টি ভাষা ট্যাগ সহ একটি স্ট্রিং বা এ জাতীয় স্ট্রিংগুলির একটি অ্যারে। লোকাল আর্গুমেন্টের সাধারণ ফর্ম এবং ব্যাখ্যার জন্য ইনটেল পৃষ্ঠাটি দেখুন। নিম্নলিখিত ইউনিকোড এক্সটেনশন কীগুলি অনুমোদিত:

nu
Numbering system. Possible values include: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
ca
Calendar. Possible values include: "buddhist", "chinese", "coptic", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamicc", "iso8601", "japanese", "persian", "roc".

বিকল্প

ঐচ্ছিক। নিম্নলিখিত বা কয়েকটি বৈশিষ্ট্যযুক্ত একটি বস্তু:

localeMatcher

লোকেল মেলানো অ্যালগরিদম ব্যবহার করতে। সম্ভাব্য মানগুলি "lookup"এবং "best fit"; ডিফল্ট হয় "best fit"। এই বিকল্প সম্পর্কে তথ্যের জন্য, ইন্টেল পৃষ্ঠাটি দেখুন।

সময় অঞ্চল

সময় অঞ্চল ব্যবহার করার জন্য to একমাত্র মান বাস্তবায়নগুলি অবশ্যই স্বীকৃত হবে "UTC"; ডিফল্টটি রানটাইমের ডিফল্ট সময় অঞ্চল। বাস্তবায়নের এছাড়াও যেমন IANA সময় জোন ডেটাবেসে সময় জোন নাম, স্বীকৃতি জানাতে পারেন "Asia/Shanghai", "Asia/Kolkata","America/New_York"

hour12

12 ঘন্টা সময় ব্যবহার করা হবে (24 ঘন্টা সময় বিপরীতে)। সম্ভাব্য মানগুলি trueএবং false; ডিফল্ট লোকাল নির্ভর dependent

formatMatcher

ব্যবহারের জন্য অ্যালগরিদমের সাথে মেলে বিন্যাস। সম্ভাব্য মানগুলি "basic"এবং "best fit"; ডিফল্ট হয়"best fit" । এই সম্পত্তি ব্যবহার সম্পর্কে তথ্যের জন্য নিম্নলিখিত অনুচ্ছেদ দেখুন।

নিম্নোক্ত বৈশিষ্ট্যগুলি ফর্ম্যাটেড আউটপুট এবং তাদের পছন্দসই উপস্থাপনায় তারিখের সময় উপাদানগুলি বর্ণনা করে। কমপক্ষে নিম্নলিখিত সাবসেটগুলি সমর্থন করার জন্য বাস্তবায়নের প্রয়োজন:

weekday, year, month, day, hour, minute, second
weekday, year, month, day
year, month, day
year, month
month, day
hour, minute, second
hour, minute

বাস্তবায়নগুলি অন্যান্য উপসেটগুলিকে সমর্থন করতে পারে এবং সেরা মিল খুঁজে পাওয়ার জন্য সমস্ত উপলব্ধ সাবসেট-উপস্থাপনার সংমিশ্রনের বিরুদ্ধে অনুরোধ করা হবে। এই আলাপ-আলোচনার জন্য দুটি অ্যালগরিদম উপলব্ধ এবং ফর্ম্যাটম্যাচার সম্পত্তি দ্বারা নির্বাচিত: একটি সম্পূর্ণ নির্দিষ্ট"basic" অ্যালগরিদম এবং একটি বাস্তবায়ন নির্ভর "সেরা ফিট" অ্যালগরিদম।

রবিবার বাদে সপ্তাহের যে-কোন দিন

সপ্তাহের দিনের উপস্থাপনা। সম্ভাব্য মান হল "narrow", "short", "long"

যুগ

যুগের উপস্থাপনা। সম্ভাব্য মান হল "narrow", "short", "long"

বছর

বছরের উপস্থাপনা। সম্ভাব্য মানগুলি হ'ল "numeric","2-digit"

মাস

মাসের উপস্থাপনা। সম্ভাব্য মান হল "numeric", "2-digit", "narrow", "short","long"

দিন

দিনের প্রতিনিধিত্ব। সম্ভাব্য মানগুলি হ'ল "numeric","2-digit"

ঘন্টা

সময়ের প্রতিনিধিত্ব। সম্ভাব্য মান হল "numeric", "2-digit"

মিনিট

মিনিটের উপস্থাপনা। সম্ভাব্য মান হল "numeric", "2-digit"

দ্বিতীয়

দ্বিতীয় প্রতিনিধিত্ব। সম্ভাব্য মান হল "numeric", "2-digit"

TIMEZONENAME

সময় অঞ্চল নাম উপস্থাপনা। সম্ভাব্য মান হল "short", "long"। প্রতিটি তারিখ-সময় উপাদান উপাদানটির জন্য ডিফল্ট মানটি সংজ্ঞায়িত হয় তবে সমস্ত উপাদান বৈশিষ্ট্য যদি অপরিজ্ঞাত হয় তবে বছর, মাস এবং দিনটিকে ধরে নেওয়া হবে "numeric"

অনলাইন পরীক্ষা করুন

আরো বিস্তারিত


15

এটি সমস্যার সাথে সহায়তা করতে পারে:

var d = new Date();

var options = {   
    day: 'numeric',
    month: 'long', 
    year: 'numeric'
};

console.log(d.toLocaleDateString('en-ZA', options));

ফর্ম্যাট সনাক্ত করার তারিখ


2
বা d.toLocaleDateString('en-US', options);আপনি যদি মার্কিন যুক্তরাষ্ট্রে থাকেন।
বিশপজেড

এটি আমার সমাধান ছিল। ধন্যবাদ.
স্টিভেন রজার্স 19

13

এইভাবে আমি আমার এনপিএম প্লাগইনগুলির জন্য প্রয়োগ করেছি

var monthNames = [
  "January", "February", "March",
  "April", "May", "June", "July",
  "August", "September", "October",
  "November", "December"
];

var Days = [
  "Sunday", "Monday", "Tuesday", "Wednesday",
  "Thursday", "Friday", "Saturday"
];

var formatDate = function(dt,format){
  format = format.replace('ss', pad(dt.getSeconds(),2));
  format = format.replace('s', dt.getSeconds());
  format = format.replace('dd', pad(dt.getDate(),2));
  format = format.replace('d', dt.getDate());
  format = format.replace('mm', pad(dt.getMinutes(),2));
  format = format.replace('m', dt.getMinutes());
  format = format.replace('MMMM', monthNames[dt.getMonth()]);
  format = format.replace('MMM', monthNames[dt.getMonth()].substring(0,3));
  format = format.replace('MM', pad(dt.getMonth()+1,2));
  format = format.replace(/M(?![ao])/, dt.getMonth()+1);
  format = format.replace('DD', Days[dt.getDay()]);
  format = format.replace(/D(?!e)/, Days[dt.getDay()].substring(0,3));
  format = format.replace('yyyy', dt.getFullYear());
  format = format.replace('YYYY', dt.getFullYear());
  format = format.replace('yy', (dt.getFullYear()+"").substring(2));
  format = format.replace('YY', (dt.getFullYear()+"").substring(2));
  format = format.replace('HH', pad(dt.getHours(),2));
  format = format.replace('H', dt.getHours());
  return format;
}

pad = function(n, width, z) {
  z = z || '0';
  n = n + '';
  return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
}

আপনি কোন প্যাকেজটির কথা উল্লেখ করছেন?
lbrahim

এটিতে একটি বাগ রয়েছে: মাসের নাম প্রথমে প্রতিস্থাপন করা হবে, তারপরে মাসের নামটিও প্রতিস্থাপন করা হবে। উদাহরণস্বরূপ এই কোডটি Marchহয়ে যাবে 3arch
ntaso

1
জন্য লাইন পরিবর্তন 'M'করতে format = format.replace("M(?!M)", (dt.getMonth()+1).toString());এবং লাইন উপরে এটা করা সঙ্গে'MMMM'
ntaso


8

সুগার.জেসের একটি ডেট.ফর্ম্যাট সহ ডেট অবজেক্টে দুর্দান্ত এক্সটেনশন রয়েছে পদ্ধতি ।

ডকুমেন্টেশন থেকে উদাহরণ:

Date.create().format('{Weekday} {Month} {dd}, {yyyy}');

Date.create().format('{12hr}:{mm}{tt}')

8

অনুলিপি, আটকানো এবং গ্রহণের জন্য যে কোনও একটি সত্যই সহজ ES6 সমাধানের সন্ধান করছেন:

const dateToString = d => `${d.getFullYear()}-${('00' + (d.getMonth() + 1)).slice(-2)}-${('00' + d.getDate()).slice(-2)}` 

// how to use:
const myDate = new Date(Date.parse('04 Dec 1995 00:12:00 GMT'))
console.log(dateToString(myDate)) // 1995-12-04


8

2019 এর মতো, দেখে মনে হচ্ছে আপনি কেবলমাত্র কিছু অংশ ফিরে পেতে লোকালডেট স্ট্রিংয়ে পেতে পারেন এবং তারপরে আপনি নিজের ইচ্ছামতো সেগুলিতে যোগ দিতে পারেন:

var date = new Date();

console.log(date.toLocaleDateString("en-US", { day: 'numeric' }) 
            + "-"+ date.toLocaleDateString("en-US", { month: 'short' })
            + "-" + date.toLocaleDateString("en-US", { year: 'numeric' }) );

> 16-Nov-2019

console.log(date.toLocaleDateString("en-US", { month: 'long' }) 
            + " " + date.toLocaleDateString("en-US", { day: 'numeric' }) 
            + ", " + date.toLocaleDateString("en-US", { year: 'numeric' }) );

> November 16, 2019

8

DayJs এ আপনার নজর রাখা উচিত এটি মূহুর্তের রিমেক তবে মডুলার আর্কিটেকচারমুখী তাই হালকা।

একই আধুনিক এপিআই সহ গতিবেগের দ্রুত 2 কেবি বিকল্প

ডে.জেএস একটি ন্যূনতম জাভাস্ক্রিপ্ট লাইব্রেরি যা মূলত মোমেন্ট.জেএস-সামঞ্জস্যপূর্ণ এপিআই সহ আধুনিক ব্রাউজারগুলির জন্য তারিখ এবং সময় পার্স, বৈধকরণ, পরিচালনা ও পরিচালনা করে। আপনি যদি Moment.js ব্যবহার করেন তবে আপনি কীভাবে Day.js ব্যবহার করবেন তা ইতিমধ্যে জানেন

var date = Date.now();
const formatedDate = dayjs(date).format("YYYY-MM-DD")
console.log(formatedDate);
<script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.8.16/dayjs.min.js" crossorigin="anonymous"></script>


7

"10-আগস্ট-2010" পেতে, চেষ্টা করুন:

var date = new Date('2010-08-10 00:00:00');
date = date.toLocaleDateString(undefined, {day:'2-digit'}) + '-' + date.toLocaleDateString(undefined, {month:'short'}) + '-' + date.toLocaleDateString(undefined, {year:'numeric'})

ব্রাউজার সহায়তার জন্য, লোক্যালডেটস্ট্রিং দেখুন


আমার "-" দরকার ছিল না, এখানে সময়, তারিখ এবং সময় অঞ্চল সহ একটি সংক্ষিপ্ত সংস্করণ রয়েছে! তারিখ = নতুন তারিখ (); তারিখ। :)
varun
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.