javascript - জাভাস্ক্রিপ্ট বই pdf




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

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

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

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

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

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

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

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

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

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

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


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 ();


আপনি বিস্তারিত সময় স্ট্রিং পার্স করার জন্য 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));

আপনি যদি ভয়ঙ্কর momentjs.com লাইব্রেরি ব্যবহার করতে পারেন (উদাহরণস্বরূপ একটি নোড.জেজে প্রকল্পে) আপনি সহজেই আপনার তারিখটি ব্যবহার করে পার্স করতে পারেন

var momentDate = moment("2014-09-15 09:00:00");

এবং মাধ্যমে JS তারিখ বস্তুর অ্যাক্সেস করতে পারেন

momentDate ().toDate();

আমি একটি পুনর্ব্যবহারযোগ্য ফাংশন লিখেছিলাম যা আমি সার্ভার থেকে তারিখের স্ট্রিং পাওয়ার সময় ব্যবহার করি।
আপনি আপনার পছন্দসই 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>

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

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

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

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;

}


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

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

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

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

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


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

// 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; 
}

বিটিআর বিআর বিন্যাস করতে রূপান্তর করুন:

    var dateString = "13/10/2014";
    var dataSplit = dateString.split('/');
    var dateConverted;

    if (dataSplit[2].split(" ").length > 1) {

        var hora = dataSplit[2].split(" ")[1].split(':');
        dataSplit[2] = dataSplit[2].split(" ")[0];
        dateConverted = new Date(dataSplit[2], dataSplit[1]-1, dataSplit[0], hora[0], hora[1]);

    } else {
        dateConverted = new Date(dataSplit[2], dataSplit[1] - 1, dataSplit[0]);
    }

আমি কারো সাহায্য আশা করি !!!


যদি আপনি বিন্যাস "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 সংস্করণে কাজ করে।


শুধু new Date(st);

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


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

আইএসও ফরম্যাটের উদাহরণ: 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 তারিখ অনুমোদন করে।


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

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


var a = "13:15"
var b = toDate(a, "h:m")
alert(b);

function toDate(dStr, format) {
  var now = new Date();
  if (format == "h:m") {
    now.setHours(dStr.substr(0, dStr.indexOf(":")));
    now.setMinutes(dStr.substr(dStr.indexOf(":") + 1));
    now.setSeconds(0);
    return now;
  } else
    return "Invalid Format";
}


var date = new Date(year, month, day);

অথবা

var date = new Date('01/01/1970');

'01 -01-1970 'বিন্যাসে তারিখ স্ট্রিং ফায়ারফক্সে কাজ করবে না, সুতরাং তারিখ ফর্ম্যাট স্ট্রিংয়ের পরিবর্তে "/" এর পরিবর্তে আরও ভাল ব্যবহার করুন।


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}





type-conversion