getMinutes () 0-9 - কীভাবে দুই অঙ্কের সংখ্যা প্রদর্শিত হবে?


136
var date = "2012-01-18T16:03";
var date = new Date(date);

console.log(date.getMinutes());
console.log(date.getMinutes().length)

এটি ফেরত 3।

  1. আমি কীভাবে এটি '03' ফেরত দেব?
  2. কেন .lengthঅনির্বাচিত ফিরে আসে?

আমি এটি চেষ্টা করেছিলাম, কিন্তু এটি কার্যকর হয়নি:

তাহলে strlen == 1তারপরnum = ('0' + num);


কেবল যোগ করার জন্য, এর প্রত্যাবর্তন .getMinutes()একটি পূর্ণসংখ্যা, আপনি .lengthকোনও পূর্ণসংখ্যা থেকে অ্যাক্সেস করতে পারবেন না । এটি সম্পাদন করার জন্য (তারিখগুলি নিয়ে কাজ করার সময় প্রস্তাবিত নয়) নম্বরটি একটি স্ট্রিংয়ে পার্স করা হয় এবং তারপরে দৈর্ঘ্যটি পরীক্ষা করা হয়। যেমন:date.getMinutes().toString().length
ভিনিসিয়াস পিয়ার্স

উত্তর:


276
var date = new Date("2012-01-18T16:03");

console.log( (date.getMinutes()<10?'0':'') + date.getMinutes() );

2
এর <10?'0':''অর্থ কী?
ব্যবহারকারী 1063287

@ ব্যবহারকারী 1063287 এটি অন্য কোনও বিবৃতি যদি একটি ইনলাইন হয়
আরেহ আরমন

5
@ user1063287 এর মানে: "getMinutes () 10 বছরের কম কম হয়, তাহলে, একটি 0 ফিরে, যদি বৃহত্তর একটি খালি স্ট্রিং ফিরে যান।
মাইকেল জিওভান্নি Pumo

@ ব্যবহারকারীর 1063287 এখানে বিকাশকারী.মোজিলা.আর.ইন.ইউএস
ডকস / ওয়েব

(শর্ত সত্য: মিথ্যা?) পিএইচপি আপনি সত্য বিবৃতি বাদ পারেন: জেএস আপনি তারপর ব্যবহার করেন (শর্ত || মিথ্যা) তিন অপারেটর (শর্ত মিথ্যা?) en.wikipedia.org/wiki/Ternary_operation
llange

203

হ্যাঁ এই উত্তরগুলি দুর্দান্ত নয় এমনকি শীর্ষস্থানীয় পোস্টগুলিও আপটিকড। এখানে আপনি, ক্রস ব্রাউজার এবং ক্লিনার ইন / স্ট্রিং রূপান্তর। এছাড়াও আমার পরামর্শটি এমন কোনও কোডের সাথে পরিবর্তিত নাম 'তারিখ' ব্যবহার করবেন না date = Date(...)যেখানে আপনি ভাষার ক্ষেত্রে সংবেদনশীলতার উপর খুব বেশি নির্ভর করে থাকেন (এটি কার্যকর হয় তবে ঝুঁকিপূর্ণ আপনি যখন বিভিন্ন ভাষায় সার্ভার / ব্রাউজার কোডের সাথে বিভিন্ন ভাষায় কাজ করছেন) । সুতরাং একটি ভারে জাভাস্ক্রিপ্ট তারিখ ধরে current_date:

mins = ('0'+current_date.getMinutes()).slice(-2);

কৌশলটি (slice(-2))"0" এর ডানদিকের 2 টি অক্ষরের স্ট্রিংয়ের মানটিতে প্রেন্ডেন্ড করা হবে getMinutes()। তাই:

"0"+"12" -> "012".slice(-2) -> "12"

এবং

"0"+"1" -> "01".slice(-2) -> "01"

7
মার্জিত সমাধান
Oldenborg

1
স্লাইস (-2) এর ব্যবহার পাল্টা স্বজ্ঞাত, তবে আমি এটি পছন্দ করি।
ক্রিসফক্স

33

আর একটি ছোট উপায় হ'ল ব্যবহার করে একটি নেতৃস্থানীয় শূন্য দিয়ে মিনিট পূরণ করা:

String(date.getMinutes()).padStart(2, "0");

অর্থ: স্ট্রিংটিকে দুটি চর দীর্ঘ করুন, যদি কোনও চর অনুপস্থিত থাকে তবে 0এই অবস্থানে সেট করুন ।

Str.padStart এ ডক্স দেখুন (টার্গেটলেন্থ, প্যাডস্ট্রিং)


18

তারিখটিকে এতে ফর্ম্যাট করতে মার্জিত ES6 ফাংশন hh:mm:ss:

const leadingZero = (num) => `0${num}`.slice(-2);

const formatTime = (date) =>
  [date.getHours(), date.getMinutes(), date.getSeconds()]
  .map(leadingZero)
  .join(':');

12

আমি যদি করতে পারি তবে সমস্যার আরও ঝরঝরে সমাধান দিতে চাই accepted গ্রহণযোগ্য উত্তরটি খুব ভাল। তবে আমি এটি এইভাবে করা হত।

Date.prototype.getFullMinutes = function () {
   if (this.getMinutes() < 10) {
       return '0' + this.getMinutes();
   }
   return this.getMinutes();
};

এখন আপনি যদি এটি ব্যবহার করতে চান।

console.log(date.getFullMinutes());

10

আমার পরামর্শ:

var minutes = data.getMinutes();
minutes = minutes > 9 ? minutes : '0' + minutes;

এটি একটি ফাংশন কল কম। পারফরম্যান্স নিয়ে ভাবা সবসময় ভাল। এটি পাশাপাশি সংক্ষিপ্ত;


4

এটি 10 ​​এর চেয়ে কম কিনা তা আপনার পরীক্ষা করা উচিত ... এর দৈর্ঘ্যের সন্ধান করছেন না, কারণ এটি একটি সংখ্যা এবং স্ট্রিং নয়


4

অন্য বিকল্প:

var dateTime = new Date();
var minutesTwoDigitsWithLeadingZero = ("0" + dateTime.getMinutes()).substr(-2);

আমি এই সমাধানটি পছন্দ করি তবে এটি আই 8 বলে মনে হয় এবং পূর্ববর্তী সংস্করণগুলি এর জন্য নেতিবাচক সংখ্যা সমর্থন করে না substrw3schools.com/jsref/jsref_substr.asp
GtEx


3

.lengthঅপরিজ্ঞাপিত কারণ getMinutesএকটি স্ট্রিং নয়, একটি নম্বর ফিরিয়ে দিচ্ছে। সংখ্যাগুলির কোনও lengthসম্পত্তি নেই। আপনি করতে পারেন

var m = "" + date.getMinutes();

এটিকে একটি স্ট্রিং তৈরি করতে, তারপরে দৈর্ঘ্যটি পরীক্ষা করুন (আপনি length === 10 টি নয়, এটি পরীক্ষা করতে চান )।


3

সংখ্যাগুলির দৈর্ঘ্য নেই, তবে আপনি সংখ্যাটি সহজেই একটি স্ট্রিংয়ে রূপান্তর করতে পারবেন, দৈর্ঘ্যটি পরীক্ষা করতে পারেন এবং তারপরে প্রয়োজনীয় 0 যদি 0 চাপান:

var strMonth = '' + date.getMinutes ();
যদি (strMonth.length == 1) {
  strMonth = '0' + strMonth;
}

3

আমি এখানে কোনও ES6 উত্তর দেখতে পাচ্ছি না তাই আমি স্ট্যান্ডার্ডজেএস ফর্ম্যাটিং ব্যবহার করে একটি যুক্ত করব

// ES6 String formatting example
const time = new Date()
const tempMinutes = new Date.getMinutes()
const minutes = (tempMinutes < 10) ? `0${tempMinutes}` : tempMinutes

3

আমি ধরে নিলাম আপনার স্ট্রিং হিসাবে মান প্রয়োজন হবে। আপনি নীচের কোড ব্যবহার করতে পারেন। এটি সর্বদা আপনাকে দুটি অঙ্কের মিনিট স্ট্রিং হিসাবে দেয় return

var date = new Date(date);
var min = date.getMinutes();

if (min < 10) {
min = '0' + min;
} else {
min = min + '';
}
console.log(min);

আশাকরি এটা সাহায্য করবে.


1

আমি সাধারণত এই টুকরো কোডটি ব্যবহার করি:

var start = new Date(timestamp),
    startMinutes = start.getMinutes() < 10 ? '0' + start.getMinutes() : start.getMinutes();

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


1

আপনি মুহুর্তের জেএস ব্যবহার করতে পারেন:

moment(date).format('mm')

উদাহরণ: moment('2019-10-29T21:08').format('mm') ==> 08

আশা করি এটি কাউকে সাহায্য করবে


যখন কেউ যাইহোক মুহূর্তটি ব্যবহার করছেন তখন খুব সুন্দর, আপনাকে ধন্যবাদ :-)
নাদাইন

0
$(".min").append( (date.getMinutes()<10?'0':'') + date.getMinutes() );

জেএসের জন্য নতুন তাই এটি খুব সহায়ক হয়েছিল এই পিপিএলটিকে খুব সম্ভবত এই সম্ভাব্য নতুনটির দিকে দেখে তাই এইভাবে আমি এটি "শ্রেণি" "মিনিট" নামক ডিভিতে প্রদর্শন করতে পেলাম

আশা করি এটি কাউকে সাহায্য করবে


0

এ কেমন? এটা আমার জন্য কাজ করে! :)

var d = new Date();
var minutes = d.getMinutes().toString().replace(/^(\d)$/, '0$1');



-2

আপনি যদি আপনার প্রকল্পে অ্যাঙ্গুলারজেএস ব্যবহার করে থাকেন তবে কেবল $ ফিল্টার ইনজেক্ট করুন এবং এটি এখানে এখানে ব্যবহার করুন:

$filter('date')(value, 'HH:mm')

এছাড়াও আপনি টেমপ্লেটে আউটপুট ফরম্যাট করতে পারেন, ফিল্টার উপর আরো এখানে

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