javascript জাভাস্ক্রিপ্ট একটি তারিখ থেকে একটি স্ট্রিং রূপান্তর




জাভাস্ক্রিপ্ট বই pdf (24)

তারিখ () এ একটি যুক্তি হিসাবে এটি পাস:

var st = "date in some format"
var dt = new Date(st);

আপনি তারিখ, মাস, বছর ব্যবহার করতে পারেন, উদাহরণস্বরূপ: dt.getMonth()

কিভাবে আমি একটি স্ট্রিং জাভাস্ক্রিপ্ট একটি তারিখ রূপান্তর করতে পারেন?

var st = "date in some format"
var dt = new date();

var dt_st= //st in date format same as dt

যদি আপনি বিন্যাস "dd / MM / yyyy" থেকে রূপান্তর করতে চান। এখানে একটি উদাহরণ:

var pattern = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
var arrayDate = stringDate.match(pattern);
var dt = new Date(arrayDate[3], arrayDate[2] - 1, arrayDate[1]);

এই সমাধান কম 9 সংস্করণে কাজ করে।


আমি তারিখ বস্তুর স্ট্রিং রূপান্তর করতে পার্স ডেটটাইম ফাংশন তৈরি করেছি এবং এটি সমস্ত ব্রাউজারে (IE ব্রাউজার সহ) কাজ করছে, চেক করুন যে কেউ প্রয়োজন কিনা, https://github.com/Umesh-Markande/Parse-String-to-Date-in-all-browser উল্লেখ করুন https://github.com/Umesh-Markande/Parse-String-to-Date-in-all-browser

    function parseDateTime(datetime) {
            var monthNames = [
                "January", "February", "March",
                "April", "May", "June", "July",
                "August", "September", "October",
                "November", "December"
              ];
            if(datetime.split(' ').length == 3){
                var date = datetime.split(' ')[0];
                var time = datetime.split(' ')[1].replace('.00','');
                var timearray = time.split(':');
                var hours = parseInt(time.split(':')[0]);
                var format = datetime.split(' ')[2];
                var bits = date.split(/\D/);
                date = new Date(bits[0], --bits[1], bits[2]); /* if you change format of datetime which is passed to this function, you need to change bits e.x ( bits[0], bits[1], bits[2 ]) position as per date, months and year it represent bits array.*/
                var day = date.getDate();
                var monthIndex = date.getMonth();
                var year = date.getFullYear();
                if ((format === 'PM' || format === 'pm') && hours !== 12) {
                    hours += 12;
                    try{  time = hours+':'+timearray[1]+':'+timearray[2] }catch(e){ time = hours+':'+timearray[1] }
                } 
                var formateddatetime = new Date(monthNames[monthIndex] + ' ' + day + '  ' + year + ' ' + time);
                return formateddatetime;
            }else if(datetime.split(' ').length == 2){
                var date = datetime.split(' ')[0];
                var time = datetime.split(' ')[1];
                var bits = date.split(/\D/);
                var datetimevalue = new Date(bits[0], --bits[1], bits[2]); /* if you change format of datetime which is passed to this function, you need to change bits e.x ( bits[0], bits[1], bits[2 ]) position as per date, months and year it represent bits array.*/
                var day = datetimevalue.getDate();
                var monthIndex = datetimevalue.getMonth();
                var year = datetimevalue.getFullYear();
                var formateddatetime = new Date(monthNames[monthIndex] + ' ' + day + '  ' + year + ' ' + time);
                return formateddatetime;
            }else if(datetime != ''){
                var bits = datetime.split(/\D/);
                var date = new Date(bits[0], --bits[1], bits[2]); /* if you change format of datetime which is passed to this function, you need to change bits e.x ( bits[0], bits[1], bits[2 ]) position as per date, months and year it represent bits array.*/
                return date;
            }
            return datetime;
        }

    var date1 = '2018-05-14 05:04:22 AM';   // yyyy-mm-dd hh:mm:ss A
    var date2 = '2018/05/14 05:04:22 AM';   // yyyy/mm/dd hh:mm:ss A
    var date3 = '2018/05/04';   // yyyy/mm/dd
    var date4 = '2018-05-04';   // yyyy-mm-dd
    var date5 = '2018-05-14 15:04:22';   // yyyy-mm-dd HH:mm:ss
    var date6 = '2018/05/14 14:04:22';   // yyyy/mm/dd HH:mm:ss

    console.log(parseDateTime(date1))
    console.log(parseDateTime(date2))
    console.log(parseDateTime(date3))
    console.log(parseDateTime(date4))
    console.log(parseDateTime(date5))
    console.log(parseDateTime(date6))

**Output---**
Mon May 14 2018 05:04:22 GMT+0530 (India Standard Time)
Mon May 14 2018 05:04:22 GMT+0530 (India Standard Time)
Fri May 04 2018 00:00:00 GMT+0530 (India Standard Time)
Fri May 04 2018 00:00:00 GMT+0530 (India Standard Time)
Mon May 14 2018 15:04:22 GMT+0530 (India Standard Time)
Mon May 14 2018 14:04:22 GMT+0530 (India Standard Time)

function stringToDate(_date,_format,_delimiter)
{
            var formatLowerCase=_format.toLowerCase();
            var formatItems=formatLowerCase.split(_delimiter);
            var dateItems=_date.split(_delimiter);
            var monthIndex=formatItems.indexOf("mm");
            var dayIndex=formatItems.indexOf("dd");
            var yearIndex=formatItems.indexOf("yyyy");
            var month=parseInt(dateItems[monthIndex]);
            month-=1;
            var formatedDate = new Date(dateItems[yearIndex],month,dateItems[dayIndex]);
            return formatedDate;
}

stringToDate("17/9/2014","dd/MM/yyyy","/");
stringToDate("9/17/2014","mm/dd/yyyy","/")
stringToDate("9-17-2014","mm-dd-yyyy","-")

স্ট্রিং পার্সিংয়ের জন্য সর্বোত্তম স্ট্রিং ফর্ম্যাটটি জাভাস্ক্রিপ্ট তারিখ অবজেক্ট কন্সট্রাকটর সহ তারিখ আইএসও বিন্যাস।

আইএসও ফরম্যাটের উদাহরণ: YYYY-MM-DD বা YYYY-MM-DDTHH:MM:SS

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

UTC হিসাবে একটি তারিখ বিশ্লেষণ করতে, একটি Z - যুক্ত করুন: new Date('2011-04-11T10:20:30Z')

ইউটিসিতে একটি তারিখ প্রদর্শন করতে, .toUTCString() ব্যবহার করুন
ব্যবহারকারীর স্থানীয় সময় একটি তারিখ প্রদর্শন করতে। .toString() ব্যবহার করুন।

এমডিএন সম্পর্কে আরও তথ্য | তারিখ এবং এই উত্তর ।

পুরানো ইন্টারনেট এক্সপ্লোরার সামঞ্জস্যের জন্য (তারিখ কম কন্সট্রাক্টারে আইএসও ফর্ম্যাটের 9 টি সংস্করণ সমর্থন করে না), আপনাকে তার অংশগুলিতে ডেটাটাইম স্ট্রিং উপস্থাপনাটি বিভক্ত করা উচিত এবং তারপরে আপনি ডেটাটাইম অংশগুলি ব্যবহার করে কন্সট্রকটার ব্যবহার করতে পারেন, যেমন: new Date('2011', '04' - 1, '11', '11', '51', '00') । উল্লেখ্য যে মাসের সংখ্যা 1 কম হতে হবে।

বিকল্প পদ্ধতি - একটি উপযুক্ত লাইব্রেরি ব্যবহার করুন:

আপনি লাইব্রেরি momentjs.com সুবিধাও নিতে পারেন যা নির্দিষ্ট সময় অঞ্চল দিয়ে momentjs.com তারিখ অনুমোদন করে।


দুর্ভাগ্যবশত আমি যে খুঁজে পাওয়া যায় নি

var mydate = new Date('2014-04-03');
console.log(mydate.toDateString());

ফিরে "এপ্রিল এপ্রিল 02 2014"। আমি এটা পাগল শব্দ জানি, কিন্তু এটা কিছু ব্যবহারকারীদের জন্য ঘটবে।

বুলেটপ্রুফ সমাধান নিম্নলিখিত:

var parts ='2014-04-03'.split('-');
// Please pay attention to the month (parts[1]); JavaScript counts months from 0:
// January - 0, February - 1, etc.
var mydate = new Date(parts[0], parts[1] - 1, parts[2]); 
console.log(mydate.toDateString());


জেসে ডেট স্ট্রিং তারিখের জন্য আমি http://momentjs.com/ ব্যবহার করি

moment().format('MMMM Do YYYY, h:mm:ss a'); // August 16th 2015, 4:17:24 pm
moment().format('dddd');                    // Sunday
moment().format("MMM Do YY");               // Aug 16th 15
moment().format('YYYY [escaped] YYYY');     // 2015 escaped 2015
moment("20111031", "YYYYMMDD").fromNow(); // 4 years ago
moment("20120620", "YYYYMMDD").fromNow(); // 3 years ago
moment().startOf('day').fromNow();        // 16 hours ago
moment().endOf('day').fromNow();          // in 8 hours

টাইমস্ট্যাম্পগুলি একটি সংখ্যাতে নিক্ষেপ করা উচিত

var ts = '1471793029764';
ts = Number(ts); // cast it to a Number
var date = new Date(ts); // works

var invalidDate = new Date('1471793029764'); // does not work. Invalid Date

new Date(2000, 10, 1) আপনাকে "২01২ মঙ্গলবার 00:00:00 GMT + 0100 (সিইটি) মঙ্গলবার" দেবে।

মাসের জন্য 0 যে জানুয়ারী দেয় দেখুন


আপনি বিস্তারিত সময় স্ট্রিং পার্স করার জন্য regex ব্যবহার করতে পারেন তারপর তারিখ বা কোনও ফিরতি ফর্ম্যাট তৈরি করুন:

//example : let dateString = "2018-08-17 01:02:03.4"

function strToDate(dateString){
    let reggie = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}).(\d{1})/
  , [,year, month, day, hours, minutes, seconds, miliseconds] = reggie.exec(dateString)
  , dateObject = new Date(year, month-1, day, hours, minutes, seconds, miliseconds);
  return dateObject;
}
alert(strToDate(dateString));

আমি এই ফাংশনটি কোনও তারিখ বস্তুর একটি UTC তারিখ বস্তুর রূপান্তর করতে তৈরি করেছি।

function dateToUTC(date) {
    return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
}


dateToUTC(new Date());

                //little bit of code for Converting dates 

                var dat1 = document.getElementById('inputDate').value;
                var date1 = new Date(dat1)//converts string to date object
                alert(date1);
                var dat2 = document.getElementById('inputFinishDate').value;
                var date2 = new Date(dat2)
                alert(date2);

তারিখ বিন্যাসে রূপান্তর করার আগে আপনাকে স্ট্রিংয়ের সামগ্রী পরীক্ষা করতে হবে:

// Convert 'M/D/YY' to Date()
mdyToDate = function(mdy) {
  var d = mdy.split(/[\/\-\.]/, 3);

  if (d.length != 3) return null;

  // Check if date is valid
  var mon = parseInt(d[0]), 
      day = parseInt(d[1]),
      year= parseInt(d[2]);
  if (d[2].length == 2) year += 2000;
  if (day <= 31 && mon <= 12 && year >= 2015)
    return new Date(year, mon - 1, day);

  return null; 
}

শুধু new Date(st);

এটা সঠিক বিন্যাস যে অনুমান।


আমি একটি পুনর্ব্যবহারযোগ্য ফাংশন লিখেছিলাম যা আমি সার্ভার থেকে তারিখের স্ট্রিং পাওয়ার সময় ব্যবহার করি।
আপনি আপনার পছন্দসই delimiter (/ - ইত্যাদি) পাস করতে পারেন যা split() পদ্ধতিটি ব্যবহার করার জন্য দিনের মাস এবং বছরের আলাদা করে।
আপনি দেখতে এবং এই কাজের উদাহরণ এটি পরীক্ষা করতে পারেন।

<!DOCTYPE html>
<html>
  <head>
    <style>
    </style>
  </head>
  <body>
    <div>
      <span>day:
      </span> 
      <span id='day'>
      </span>
    </div>
    <div>
      <span>month:
      </span> 
      <span id='month'>
      </span>
    </div>
    <div>
      <span>year:
      </span> 
      <span id='year'>
      </span>
    </div>
    <br/>
    <input type="button" id="" value="convert" onClick="convert('/','28/10/1980')"/>
    <span>28/10/1980
    </span>
    <script>
      function convert(delimiter,dateString)
      {
        var splitted = dateString.split('/');
        // create a new date from the splitted string 
        var myDate = new Date(splitted[2],splitted[1],splitted[0]);
        // now you can access the Date and use its methods 
        document.getElementById('day').innerHTML = myDate.getDate();
        document.getElementById('month').innerHTML = myDate.getMonth();
        document.getElementById('year').innerHTML = myDate.getFullYear();
      }
    </script>
  </body>
</html>

এই কোড ব্যবহার করুন: (আমার সমস্যা এই কোড দিয়ে সমাধান করা হয়েছিল)

function dateDiff(date1, date2){
var diff = {}                           // Initialisation du retour
var tmp = date2 - date1;

tmp = Math.floor(tmp/1000);             // Nombre de secondes entre les 2 dates
diff.sec = tmp % 60;                    // Extraction du nombre de secondes

tmp = Math.floor((tmp-diff.sec)/60);    // Nombre de minutes (partie entière)
diff.min = tmp % 60;                    // Extraction du nombre de minutes

tmp = Math.floor((tmp-diff.min)/60);    // Nombre d'heures (entières)
diff.hour = tmp % 24;                   // Extraction du nombre d'heures

tmp = Math.floor((tmp-diff.hour)/24);   // Nombre de jours restants
diff.day = tmp;

return diff;

}


আপনি এটি চেষ্টা করতে পারেন:

function formatDate(userDOB) {
  const dob = new Date(userDOB);

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

  const day = dob.getDate();
  const monthIndex = dob.getMonth();
  const year = dob.getFullYear();

  // return day + ' ' + monthNames[monthIndex] + ' ' + year;
  return `${day} ${monthNames[monthIndex]} ${year}`;
}

console.log(formatDate('1982-08-10'));


var st = "26.04.2013";
var pattern = /(\d{2})\.(\d{2})\.(\d{4})/;
var dt = new Date(st.replace(pattern,'$3-$2-$1'));

এবং আউটপুট হবে:

dt => Date {Fri Apr 26 2013}

moment.js ( momentjs.com ) ব্যবহার তারিখগুলির জন্য একটি সম্পূর্ণ এবং ভাল প্যাকেজ এবং ISO 8601 স্ট্রিংগুলিকে সমর্থন করে

আপনি স্ট্রিং তারিখ এবং বিন্যাস যোগ করতে পারে।

moment("12-25-1995", "MM-DD-YYYY");

এবং একটি তারিখ বৈধ কিনা তা আপনি পরীক্ষা করতে পারেন।

moment("not a real date").isValid(); //Returns false

ডকুমেন্টেশন দেখুন http://momentjs.com/docs/#/parsing/string-format/

প্রস্তাবনা: আমি তারিখগুলির জন্য একটি প্যাকেজ ব্যবহার করার সুপারিশ করি যা অনেকগুলি বিন্যাস ধারণ করে কারণ টাইমজোন এবং বিন্যাস সময় ব্যবস্থাপনা সত্যিই একটি বড় সমস্যা, মুহূর্ত জেএস অনেকগুলি ফরম্যাট সমাধান করে। আপনি একটি সহজ স্ট্রিং তারিখ থেকে সহজেই তারিখটি পার্স করতে পারছেন তবে আমি মনে করি এটি সমস্ত ফরম্যাট এবং তারিখগুলির বৈচিত্র্যের জন্য একটি কঠিন কাজ।



আপনি এটি করতে পারেন: mydate.toLocaleDateString ();


এখনো এটি করার আরেকটি উপায়:

String.prototype.toDate = function(format) {
    format = format || "dmy";
    var separator = this.match(/[^0-9]/)[0];
    var components = this.split(separator);
    var day, month, year;
    for (var key in format) {
        var fmt_value = format[key];
        var value = components[key];
        switch (fmt_value) {
            case "d":
                day = parseInt(value);
                break;
            case "m":
                month = parseInt(value)-1;
                break;
            case "y":
                year = parseInt(value);
        }
    }
    return new Date(year, month, day);
};
a = "3/2/2017";
console.log(a.toDate("dmy"));
// Date 2017-02-03T00:00:00.000Z

আমি এটির জন্য একটি বুদ্ধি তৈরি করেছি, আপনি কোন তারিখ স্ট্রিংতে ডেট () ফাংশন ব্যবহার করতে এবং তারিখ ফর্ম্যাট সরবরাহ করতে পারেন। এটি আপনাকে একটি তারিখ বস্তু প্রদান করবে। https://jsfiddle.net/Sushil231088/q56yd0rp/

"17/9/2014".toDate("dd/MM/yyyy", "/")

ISO 8601-esque destestrings, মান হিসাবে চমৎকার হিসাবে, এখনও ব্যাপকভাবে সমর্থিত হয় না।

এই ডেটাস্ট্রিং ফর্ম্যাটটি ব্যবহার করা উচিত তা নির্ধারণ করার জন্য এটি একটি দুর্দান্ত সম্পদ:

http://dygraphs.com/date-formats.html

হ্যাঁ, এর মানে হল যে আপনার ডেট্রেস্টিং যতটা সহজ হতে পারে ততই সহজ

"2014/10/13 23:57:52" পরিবর্তে "2014-10-13 23:57:52"





type-conversion