কীভাবে জাভাস্ক্রিপ্টে ডেটটাইম পাবেন?


উত্তর:


155

শব্দার্থকভাবে, আপনি সম্ভবত ওয়ান-লাইনার সন্ধান করছেন

new Date().toLocaleString()

যা ব্যবহারকারীর লোকালে তারিখে ফর্ম্যাট করে।

আপনি যদি সত্যিই তারিখগুলি ফর্ম্যাট করার জন্য কোনও নির্দিষ্ট উপায়ের সন্ধান করে থাকেন তবে আমি moment.js গ্রন্থাগারটি সুপারিশ করছি ।


3
Moment.js গ্রন্থাগারটি সুপারিশ করার জন্য আপনাকে ধন্যবাদ; এটি আসাধারন.
কার্বন্টভেলভে

3
কারও নিজের তারিখ / সময় কোড লিখতে হবে না (অন্য কয়েকটি উত্তর হিসাবে)। কর্নারের কেসগুলির সংখ্যা বিস্ময়কর। Moment.js ( momentjs.com/tests ) এর জন্য ইউনিট পরীক্ষার পৃষ্ঠাটি দেখুন - এখানে 66701 পরীক্ষা রয়েছে! শুধু এটি ব্যবহার করুন, দুর্দান্ত। অথবা অন্য কোনও গ্রন্থাগার সন্ধান করুন তবে এর জন্য নিজের কোডটি লিখবেন না, আপনি খুব সম্ভবত কিছু মিস করবেন (আমি এটি অতীতে রোয়ালি ভ্রষ্ট করেছি)।
পাশেরউইঞ্জুই

1
আমি বুঝতে পারছি না যে কেন এটির মতো একটি লাইনের উত্তর খুঁজে পাওয়া এত কঠিন ছিল। ধন্যবাদ।
টিমহ্যাক 22

46

যদি ফর্ম্যাটটি "ফিক্সড" অর্থ হয় তবে আপনাকে অন্য ফর্ম্যাটটি ব্যবহার করতে হবে না তবে আপনার তারিখের ফর্ম্যাট করতে পুরো লাইব্রেরি ব্যবহার না করে খাঁটি জাভাস্ক্রিপ্ট থাকতে পারে:

//Pad given value to the left with "0"
function AddZero(num) {
    return (num >= 0 && num < 10) ? "0" + num : num + "";
}

window.onload = function() {
    var now = new Date();
    var strDateTime = [[AddZero(now.getDate()), 
        AddZero(now.getMonth() + 1), 
        now.getFullYear()].join("/"), 
        [AddZero(now.getHours()), 
        AddZero(now.getMinutes())].join(":"), 
        now.getHours() >= 12 ? "PM" : "AM"].join(" ");
    document.getElementById("Console").innerHTML = "Now: " + strDateTime;
};
<div id="Console"></div>

ভেরিয়েবলটি strDateTimeআপনার ইচ্ছামত ফর্ম্যাটে তারিখ / সময় ধরে রাখবে এবং আপনার প্রয়োজন হলে আপনি এটি খুব সহজেই টুইঙ্ক করতে সক্ষম হবেন।

আমি joinভাল অনুশীলন হিসাবে ব্যবহার করছি , এর চেয়ে বেশি কিছুই নয়, একসাথে স্ট্রিং যুক্ত করার চেয়ে ভাল।


@ জেনস হ্যাঁ, এটি যতটা সম্ভব মানক হিসাবে বিশ্বাস করা শক্ত, যে কোনও ব্রাউজারের বেসিক তারিখ / সময় পদ্ধতিগুলির জন্য আলাদা সিনট্যাক্স থাকবে। :)
শেডো উইজার্ড আপনার পক্ষে কান

2
দুর্দান্ত সমাধান, এছাড়াও ব্যবহারের ফর্ম্যাটের জন্য কেবল অ্যাডজিরো (Now.getDate ()) এবং অ্যাডজিরো (now.getMonth () + 1) স্টেটমেন্টগুলি সরিয়ে নিন এবং 12, 0, এবং -12 যদি> 12 হয় তার সময়গুলি ঠিক করুন। শুভকামনা এবং সমাধানের জন্য ধন্যবাদ
জেন্ট করুন

আপনার কোডটি 14:45 অপরাহ্নের পরিবর্তে 02:45 অপরাহ্নে ফিরে আসা উচিত। সুতরাং আমি আপনার কোডটি কিছুটা সংশোধন করেছি: ফাংশন getNowDateTimeStr () {var এখন = নতুন তারিখ (); var ঘন্টা = now.getHours () - (now.getHours ()> = 12? 12: 0); [[অ্যাডজিরো (now.getDate ()), AddZero (now.getMonth () + 1), now.getFullYear ()] যোগ দিন ("/"), [অ্যাডজিরো (ঘন্টা), অ্যাড জিরো (now.getMinutes () )]। যোগ দিন (":"), now.getHours ()> = 12? "প্রধানমন্ত্রী": "এএম"]। যোগ দিন (""); 0 // প্যাড প্রদত্ত মান "0" ফাংশন দিয়ে বামদিকে অ্যাডজিরো (সংখ্যা) {রিটার্ন (নাম> = 0 && সংখ্যা <10)? "0" + নাম: নাম + ""; }
ডালমেট

23
var now = new Date();

now.format("dd/MM/yyyy hh:mm TT");

এখানে সম্পূর্ণ বিবরণ পান: ফ্ল্যাগ্র্যান্ট বাদাসেরি »জাভাস্ক্রিপ্ট তারিখ ফর্ম্যাট


আমি ইতিমধ্যে এই ব্লগটি চেষ্টা করেছি এবং সময়টি 20/50/2011 12:01 টিটি হিসাবে প্রদর্শিত হবে
নিমি

1
মি এর ভুল আছে। উপরের নীচের দিকে স্যুইচ করুন, আপনার মিনিট রয়েছে যেখানে মাস হওয়া উচিত এবং তদ্বিপরীত।
কুইবলসোম

9

Date().toLocaleString() এটি ফেরত দেয়: 7/31/2018, 12:58:03 PM

বেশ কাছাকাছি - শুধু কমা এবং সেকেন্ড ছেড়ে দিন:

new Date().toLocaleString().replace(",","").replace(/:.. /," ");

ফলাফল: 7/31/2018 12:58 PM


5
function pad_2(number)
{
     return (number < 10 ? '0' : '') + number;
}

function hours(date)
{
    var hours = date.getHours();
    if(hours > 12)
        return hours - 12; // Substract 12 hours when 13:00 and more
    return hours;
}

function am_pm(date)
{
    if(date.getHours()==0 && date.getMinutes()==0 && date.getSeconds()==0)
        return ''; // No AM for MidNight
    if(date.getHours()==12 && date.getMinutes()==0 && date.getSeconds()==0)
        return ''; // No PM for Noon
    if(date.getHours()<12)
        return ' AM';
    return ' PM';
}

function date_format(date)
{
     return pad_2(date.getDate()) + '/' +
            pad_2(date.getMonth()+1) + '/' +
            (date.getFullYear() + ' ').substring(2) +
            pad_2(hours(date)) + ':' +
            pad_2(date.getMinutes()) +
            am_pm(date);
}

কোডটি 3 ই সেপ্টেম্বর '12 তে 10:11 এ সংশোধন করা হয়েছে


নিজের কাজের খোজ নাও. আমি এটি চেষ্টা করে আউটপুট হিসাবে "03/06/112 05:02 PM" পেয়েছি। সেখানে শুধুমাত্র জিনিস সঠিক সময়। তারিখ, মাস এবং (স্পষ্টতই) বছর সমস্ত ভুল।
মুহিত

5

আমি নীচে যে স্নিপেট ব্যবহার করেছি তা ব্যবহার করে আপনি তারিখটিকে প্রায় কোনও বিন্যাসে রূপান্তর করতে পারেন ।

কোড:

dateFormat(new Date(),"dd/mm/yy h:MM TT")
//"20/06/14 6:49 PM"

অন্যান্য উদাহরণ

// Can also be used as a standalone function
dateFormat(new Date(), "dddd, mmmm dS, yyyy, h:MM:ss TT");
// Saturday, June 9th, 2007, 5:46:21 PM

dateFormat(new Date(),"dddd d mmmm yyyy")
//Monday 2 June 2014"

স্নিপেট :

আপনার কোডটিতে এই লিঙ্ক থেকে নেওয়া নিম্নলিখিত কোড যুক্ত করুন ।

var dateFormat = function () {
    var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
        timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
        timezoneClip = /[^-+\dA-Z]/g,
        pad = function (val, len) {
            val = String(val);
            len = len || 2;
            while (val.length < len) val = "0" + val;
            return val;
        };

    // Regexes and supporting functions are cached through closure
    return function (date, mask, utc) {
        var dF = dateFormat;

        // You can't provide utc if you skip other args (use the "UTC:" mask prefix)
        if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
            mask = date;
            date = undefined;
        }

        // Passing date through Date applies Date.parse, if necessary
        date = date ? new Date(date) : new Date;
        if (isNaN(date)) throw SyntaxError("invalid date");

        mask = String(dF.masks[mask] || mask || dF.masks["default"]);

        // Allow setting the utc argument via the mask
        if (mask.slice(0, 4) == "UTC:") {
            mask = mask.slice(4);
            utc = true;
        }

        var _ = utc ? "getUTC" : "get",
            d = date[_ + "Date"](),
            D = date[_ + "Day"](),
            m = date[_ + "Month"](),
            y = date[_ + "FullYear"](),
            H = date[_ + "Hours"](),
            M = date[_ + "Minutes"](),
            s = date[_ + "Seconds"](),
            L = date[_ + "Milliseconds"](),
            o = utc ? 0 : date.getTimezoneOffset(),
            flags = {
                d:    d,
                dd:   pad(d),
                ddd:  dF.i18n.dayNames[D],
                dddd: dF.i18n.dayNames[D + 7],
                m:    m + 1,
                mm:   pad(m + 1),
                mmm:  dF.i18n.monthNames[m],
                mmmm: dF.i18n.monthNames[m + 12],
                yy:   String(y).slice(2),
                yyyy: y,
                h:    H % 12 || 12,
                hh:   pad(H % 12 || 12),
                H:    H,
                HH:   pad(H),
                M:    M,
                MM:   pad(M),
                s:    s,
                ss:   pad(s),
                l:    pad(L, 3),
                L:    pad(L > 99 ? Math.round(L / 10) : L),
                t:    H < 12 ? "a"  : "p",
                tt:   H < 12 ? "am" : "pm",
                T:    H < 12 ? "A"  : "P",
                TT:   H < 12 ? "AM" : "PM",
                Z:    utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
                o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
                S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
            };

        return mask.replace(token, function ($0) {
            return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
        });
    };
}();

// Some common format strings
dateFormat.masks = {
    "default":      "ddd mmm dd yyyy HH:MM:ss",
    shortDate:      "m/d/yy",
    mediumDate:     "mmm d, yyyy",
    longDate:       "mmmm d, yyyy",
    fullDate:       "dddd, mmmm d, yyyy",
    shortTime:      "h:MM TT",
    mediumTime:     "h:MM:ss TT",
    longTime:       "h:MM:ss TT Z",
    isoDate:        "yyyy-mm-dd",
    isoTime:        "HH:MM:ss",
    isoDateTime:    "yyyy-mm-dd'T'HH:MM:ss",
    isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};

// Internationalization strings
dateFormat.i18n = {
    dayNames: [
        "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
        "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
    ],
    monthNames: [
        "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
        "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
    ]
};

// For convenience...
Date.prototype.format = function (mask, utc) {
    return dateFormat(this, mask, utc);
};

1

@ শ্যাডো উইজার্ডের কোডটি 14:45 অপরাহ্নের পরিবর্তে 02:45 PM তে ফিরে আসবে। সুতরাং আমি তার কোডটি কিছুটা সংশোধন করেছি:

function getNowDateTimeStr(){
 var now = new Date();
 var hour = now.getHours() - (now.getHours() >= 12 ? 12 : 0);
return [[AddZero(now.getDate()), AddZero(now.getMonth() + 1), now.getFullYear()].join("/"), [AddZero(hour), AddZero(now.getMinutes())].join(":"), now.getHours() >= 12 ? "PM" : "AM"].join(" ");
}

//Pad given value to the left with "0"
function AddZero(num) {
    return (num >= 0 && num < 10) ? "0" + num : num + "";
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.