javascript - জাভাস্ক্রিপ্ট তারিখ ফরম্যাট করুন yyyy-mm-dd




date formatting (20)

Date.js এই জন্য মহান।

require("datejs")
(new Date()).toString("yyyy-MM-dd")

হাই সব আমার একটি তারিখ বিন্যাস আছে সূর্য মে 11,2014 আমি কিভাবে জাভাস্ক্রিপ্ট মধ্যে 2014-05-11 এ রূপান্তর করতে পারেন।

function taskDate(dateMilli) {
    var d = (new Date(dateMilli) + '').split(' ');
    d[2] = d[2] + ',';

    return [d[0], d[1], d[2], d[3]].join(' ');
}
var datemilli = Date.parse('Sun May 11,2014');
taskdate(datemilli);

উপরে কোড আমাকে সূর্য 11,2014 সূর্য হতে পারে একই তারিখ ফর্ম্যাট সাহায্য করে


আপনার তারিখটি yyyy-mm-dd ফর্ম্যাটে রূপান্তর করার সবচেয়ে সহজ উপায় হল এটি করা:

var date = new Date("Sun May 11,2014");
var dateString = new Date(date.getTime() - (date.getTimezoneOffset() * 60000 ))
                    .toISOString()
                    .split("T")[0];

কিভাবে এটা কাজ করে :

  • new Date("Sun May 11,2014") বর্তমান "Sun May 11,2014" উপর ভিত্তি করে একটি টাইমজোনে Sun May 11 2014 00:00:00 "Sun May 11,2014" উপস্থাপন করে এমন একটি তারিখের বস্তুর "Sun May 11,2014" স্ট্রিংটিকে রূপান্তর করে (হোস্ট সিস্টেম সেটিংস)
  • new Date(date.getTime() - (date.getTimezoneOffset() * 60000 )) আপনার তারিখটি তারিখের সাথে যুক্ত করে যেটি Sun May 11 2014 00:00:00 সময় অনুসারে বিয়োগ করে UTC (মানক সময়) জোন অফসেট
  • .toISOString() তারিখ বস্তুর ISO 8601 স্ট্রিং 2014-05-11T00:00:00.000Z
  • .split("T") স্ট্রিংকে অ্যারে বিভক্ত করে ["2014-05-11", "00:00:00.000Z"]
  • [0] যে অ্যারের প্রথম উপাদান লাগে

ডেমো

var date = new Date("Sun May 11,2014");
var dateString = new Date(date.getTime() - (date.getTimezoneOffset() * 60000 ))
                    .toISOString()
                    .split("T")[0];

console.log(dateString);


আপনি করতে পারেন

function formatDate(date) {
    var d = new Date(date),
        month = '' + (d.getMonth() + 1),
        day = '' + d.getDate(),
        year = d.getFullYear();

    if (month.length < 2) month = '0' + month;
    if (day.length < 2) day = '0' + day;

    return [year, month, day].join('-');
}

ব্যবহার উদাহরণ:

alert(formatDate('Sun May 11,2014'));

আউটপুট:

2014-05-11

http://jsfiddle.net/abdulrauf6182012/2Frm3/ ফোডাল: http://jsfiddle.net/abdulrauf6182012/2Frm3/


আমি yyyy-mm-dd বিন্যাসে তারিখ পেতে এই ভাবে ব্যবহার করি :)

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

উপরের কয়েকটি ঠিক আছে - তবে খুব নমনীয় ছিল না। আমি এমন কিছু চেয়েছিলাম যা সত্যিই আরো প্রান্তের মামলাগুলি পরিচালনা করতে পারে, তাই আমি @আঙ্গাঙ্গলিউর উত্তরটি গ্রহণ করেছি এবং এটির উপর প্রসারিত করেছি। https://jsfiddle.net/8904cmLd/1/

function DateToString(inDate, formatString) {
// Written by m1m1k 2018-04-05

// Validate that we're working with a date
if(!isValidDate(inDate))
{
    inDate = new Date(inDate);
}
// see the jsFiddle for extra code to be able to use DateToString('Sun May 11,2014','USA');
//formatString = CountryCodeToDateFormat(formatString);

  var dateObject = {
    M: inDate.getMonth() + 1,
    d: inDate.getDate(),
    D: inDate.getDate(),
    h: inDate.getHours(),
    m: inDate.getMinutes(),
    s: inDate.getSeconds(),
    y: inDate.getFullYear(),
    Y: inDate.getFullYear()
  };
  // Build Regex Dynamically based on the list above.
  // Should end up with something like this "/([Yy]+|M+|[Dd]+|h+|m+|s+)/g"
  var dateMatchRegex = joinObj(dateObject, "+|") + "+";
  var regEx = new RegExp(dateMatchRegex,"g");
  formatString = formatString.replace(regEx, function(formatToken) {
    var datePartValue = dateObject[formatToken.slice(-1)];
    var tokenLength = formatToken.length;

    // A conflict exists between specifying 'd' for no zero pad -> expand to '10' and specifying yy for just two year digits '01' instead of '2001'.  One expands, the other contracts.
    // so Constrict Years but Expand All Else
    if(formatToken.indexOf('y') < 0 && formatToken.indexOf('Y') < 0)
    {
        // Expand single digit format token 'd' to multi digit value '10' when needed
        var tokenLength = Math.max(formatToken.length, datePartValue.toString().length);
    }
        var zeroPad = (datePartValue.toString().length < formatToken.length ? "0".repeat(tokenLength) : "");
    return (zeroPad + datePartValue).slice(-tokenLength);
  });

    return formatString;
}

উদাহরণ ব্যবহার:

DateToString('Sun May 11,2014', 'MM/DD/yy');
DateToString('Sun May 11,2014', 'yyyy.MM.dd');
DateToString(new Date('Sun Dec 11,2014'),'yy-M-d');

এই উত্তর কেউ আমাকে বেশ সন্তুষ্ট। আমি একটি ক্রস প্ল্যাটফর্ম সমাধান চেয়েছিলাম যেটি আমাকে কোনও বাইরের লাইব্রেরি ব্যবহার না করে স্থানীয় সময় অঞ্চলটিতে দিন দেয়।

এই আমি সঙ্গে এসেছিলেন কি হল:

function localDay(time) {
  var minutesOffset = time.getTimezoneOffset()
  var millisecondsOffset = minutesOffset*60*1000
  var local = new Date(time - millisecondsOffset)
  return local.toISOString().substr(0, 10)
}

তারিখের তারিখটি টাইমজোন তারিখের তারিখগুলিতে YYYY-MM-DD ফর্ম্যাটে ফেরত দিন।

উদাহরণস্বরূপ localDay(new Date("2017-08-24T03:29:22.099Z")) "2017-08-23" ফিরে আসবে যদিও এটি ইতিমধ্যেই ইউটিসি ২4 তম।

IE8 এ কাজ করার জন্য আপনাকে polyfill পলিফিল করতে হবে, তবে এটি অন্য সব জায়গায় সমর্থিত হওয়া উচিত।


এখনো উত্তর অন্য সমন্বয়। চমত্কারভাবে পাঠযোগ্য, কিন্তু একটু লম্বা।

function getCurrentDayTimestamp() {
  const d = new Date();

  return new Date(
    Date.UTC(
      d.getFullYear(),
      d.getMonth(),
      d.getDate(),
      d.getHours(),
      d.getMinutes(),
      d.getSeconds()
    )
  // `toIsoString` returns something like "2017-08-22T08:32:32.847Z"
  // and we want the first part ("2017-08-22")
  ).toISOString().slice(0, 10);
}

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

var date = Date.parse('Sun May 11,2014');

function format(date) {
  date = new Date(date);

  var day = ('0' + date.getDate()).slice(-2);
  var month = ('0' + (date.getMonth() + 1)).slice(-2);
  var year = date.getFullYear();

  return year + '-' + month + '-' + day;
}

console.log(format(date));

এটি আমার জন্য পছন্দসই বিন্যাসে বর্তমান তারিখ পেতে কাজ করেছে (YYYYMMDD HH: MM: SS

var d = new Date();
var date1=d.getFullYear()+''+((d.getMonth()+1)<10?"0"+(d.getMonth()+1):(d.getMonth()+1))+''+(d.getDate()<10?"0"+d.getDate():d.getDate());
var time1=(d.getHours()<10?"0"+d.getHours():d.getHours())+':'+(d.getMinutes()<10?"0"+d.getMinutes():d.getMinutes())+':'+(d.getSeconds()<10?"0"+d.getSeconds():d.getSeconds());
print(date1+' '+time1);

কিছু উত্তর সমন্বয়:

var d = new Date(date);
date = [
  d.getFullYear(),
  ('0' + (d.getMonth() + 1)).slice(-2),
  ('0' + d.getDate()).slice(-2)
].join('-');

টাইমজোনটি বিবেচনা করার জন্য, এই লাইনারটি কোনও লাইব্রেরি ছাড়াই ভাল হওয়া উচিত:

new Date().toLocaleString("en-IN", {timeZone: "Asia/Kolkata"}).split(',')[0]


নিম্নরূপ সামিত সাতপুতের প্রতিক্রিয়া আমি সংশোধন করেছি:

var newstartDate = new Date();
// newstartDate.setDate(newstartDate.getDate() - 1);
var startDate = newstartDate.toISOString().replace(/[-T:\.Z]/g, ""); //.slice(0, 10); // To get the Yesterday's Date in YYYY MM DD Format
console.log(startDate);


যদি আপনার লাইব্রেরি ব্যবহার করার বিরুদ্ধে কিছু না থাকে; আপনি শুধু moments.js লাইব্রেরি ব্যবহার করতে পারে তাই ...

var now = new Date();
var dateString = moment(now).format('YYYY-MM-DD');

var dateStringWithTime = moment(now).format('YYYY-MM-DD HH:mm:ss');
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>


যদি তারিখটি সমস্ত টাইমজোন জুড়ে একই রকম থাকে তবে উদাহরণস্বরূপ ডেটাবেস থেকে কিছু মান উপস্থাপিত করে তবে জেট তারিখের বস্তুর দিন, মাস, সম্পূর্ণরূপে ফাংশনগুলির ইউটিসি সংস্করণগুলি ব্যবহার করতে ভুলবেন না কারণ এটি ইউটিসি সময় প্রদর্শিত হবে এবং 1 টি ত্রুটি এড়াবে নির্দিষ্ট সময় অঞ্চল। আরও ভাল ফর্ম্যাট এই ধরনের জন্য moment.js তারিখ লাইব্রেরি ব্যবহার করুন


সমস্ত দেওয়া উত্তর মহান এবং আমাকে বড় সাহায্য করেছে। আমার অবস্থানে, আমি তারিখ -1 এর সাথে Yyyy মিমি ডিডি ফর্ম্যাটে বর্তমান তারিখ পেতে চেয়েছিলেন। এখানে আমার জন্য কি কাজ।

var endDate = new Date().toISOString().slice(0, 10); // To get the Current Date in YYYY MM DD Format

var newstartDate = new Date();
newstartDate.setDate(newstartDate.getDate() - 1);
var startDate = newstartDate.toISOString().slice(0, 10); // To get the Yesterday's Date in YYYY MM DD Format
alert(startDate);

সহজেই আমার date-shortcode প্যাকেজ দ্বারা সম্পন্ন:

const dateShortcode = require('date-shortcode')
dateShortcode.parse('{YYYY-MM-DD}', 'Sun May 11,2014')
//=> '2014-05-11'

কোন লাইব্রেরি প্রয়োজন হয়

শুধু বিশুদ্ধ জাভাস্ক্রিপ্ট

নীচের উদাহরণ আজ থেকে গত দুই মাস পেতে

var d = new Date()
d.setMonth(d.getMonth() - 2);
var dateString = new Date(d);
console.log('Before Format', dateString, 'After format', dateString.toISOString().slice(0,10))


function formatDate(date) {
    var year = date.getFullYear().toString();
    var month = (date.getMonth() + 101).toString().substring(1);
    var day = (date.getDate() + 100).toString().substring(1);
    return year + "-" + month + "-" + day;
}

alert(formatDate(new Date()));


var d = new Date("Sun May 1,2014");

var year  = d.getFullYear();
var month = d.getMonth() + 1;
var day   = d.getDate(); 

month = checkZero(month);             
day   = checkZero(day);

var date = "";

date += year;
date += "-";
date += month;
date += "-";
date += day;

document.querySelector("#display").innerHTML = date;
    
function checkZero(i) 
{
    if (i < 10) 
    {
        i = "0" + i
    };  // add zero in front of numbers < 10

    return i;
}
<div id="display"></div>


new Date(new Date(YOUR_DATE.toISOString()).getTime() - 
                 (YOUR_DATE.getTimezoneOffset() * 60 * 1000)).toISOString().substr(0, 10)





time-format