উত্তর:
জেএস এটি করার জন্য পর্যাপ্ত বেসিক সরঞ্জামের মালিকানাধীন, এটি বেশ জঘন্য।
/**
* You first need to create a formatting function to pad numbers to two digits…
**/
function twoDigits(d) {
if(0 <= d && d < 10) return "0" + d.toString();
if(-10 < d && d < 0) return "-0" + (-1*d).toString();
return d.toString();
}
/**
* …and then create the method to output the date string as desired.
* Some people hate using prototypes this way, but if you are going
* to apply this to more than one Date object, having it as a prototype
* makes sense.
**/
Date.prototype.toMysqlFormat = function() {
return this.getUTCFullYear() + "-" + twoDigits(1 + this.getUTCMonth()) + "-" + twoDigits(this.getUTCDate()) + " " + twoDigits(this.getUTCHours()) + ":" + twoDigits(this.getUTCMinutes()) + ":" + twoDigits(this.getUTCSeconds());
};
Dateঅবজেক্ট ব্যবহার করুন । new Date().toMysqlFormat()বা new Date(2014,12,14).toMysqlFormat()বা যাই হোক না কেন
toISOStringপদ্ধতির প্রস্তাব দিই ।
var date;
date = new Date();
date = date.getUTCFullYear() + '-' +
('00' + (date.getUTCMonth()+1)).slice(-2) + '-' +
('00' + date.getUTCDate()).slice(-2) + ' ' +
('00' + date.getUTCHours()).slice(-2) + ':' +
('00' + date.getUTCMinutes()).slice(-2) + ':' +
('00' + date.getUTCSeconds()).slice(-2);
console.log(date);
বা আরও ছোট:
new Date().toISOString().slice(0, 19).replace('T', ' ');
আউটপুট:
2012-06-22 05:40:06
সময় অঞ্চল নিয়ন্ত্রণ সহ আরও উন্নত ব্যবহারের ক্ষেত্রে, http://momentjs.com/ ব্যবহার বিবেচনা করুন :
require('moment')().format('YYYY-MM-DD HH:mm:ss');
হালকা ওজনের বিকল্পের জন্য For momentjs, https://github.com/taylorhakes/fecha বিবেচনা করুন
require('fecha').format('YYYY-MM-DD HH:mm:ss')
var d = new Date(); d.toISOString().split('T')[0]+' '+d.toTimeString().split(' ')[0];
আমি মনে করি পদ্ধতিটি ব্যবহার করে সমাধানটি কম আটকানো হতে পারে toISOString(), এর বিস্তৃত ব্রাউজারের সামঞ্জস্য রয়েছে।
সুতরাং আপনার অভিব্যক্তিটি এক-লাইন হবে:
new Date().toISOString().slice(0, 19).replace('T', ' ');
উত্পন্ন আউটপুট:
"2017-06-29 17:54:04"
new Date(1091040026000).toISOString().slice(0, 19).replace('T', ' ');
Dateএর টাইম জোন অফসেট । যদিও আপনার মাইএসকিউএল DATETIME ফর্ম্যাটে অন্তর্নিহিত ইউটিসি সময়টি দেয়। বেশিরভাগ ক্ষেত্রে ইউটিসি সংরক্ষণ করা ভাল হতে পারে এবং উভয় ক্ষেত্রেই আপনার ডেটা টেবিলটি সম্ভবত একটি ক্ষেত্রে অবস্থানের তথ্য দেওয়া উচিত। বিকল্পভাবে, স্থানীয় সময় রূপান্তর করা বেশ সহজ: ব্যবহার ... - Date.getTimezoneOffset() * 60 * 1000(ডাবলাইট সেভিং টাইম প্রযোজ্য ক্ষেত্রে NB সামঞ্জস্য করে)।
মাইএসকিউএল এর জন্য জেএস সময় মান
var datetime = new Date().toLocaleString();
অথবা
const DATE_FORMATER = require( 'dateformat' );
var datetime = DATE_FORMATER( new Date(), "yyyy-mm-dd HH:MM:ss" );
অথবা
const MOMENT= require( 'moment' );
let datetime = MOMENT().format( 'YYYY-MM-DD HH:mm:ss.000' );
আপনি এটি পরমগুলিতে প্রেরণ করতে পারেন এটির কাজটি করে।
নির্বিচার তারিখের স্ট্রিংয়ের জন্য,
// Your default date object
var starttime = new Date();
// Get the iso time (GMT 0 == UTC 0)
var isotime = new Date((new Date(starttime)).toISOString() );
// getTime() is the unix time value, in milliseconds.
// getTimezoneOffset() is UTC time and local time in minutes.
// 60000 = 60*1000 converts getTimezoneOffset() from minutes to milliseconds.
var fixedtime = new Date(isotime.getTime()-(starttime.getTimezoneOffset()*60000));
// toISOString() is always 24 characters long: YYYY-MM-DDTHH:mm:ss.sssZ.
// .slice(0, 19) removes the last 5 chars, ".sssZ",which is (UTC offset).
// .replace('T', ' ') removes the pad between the date and time.
var formatedMysqlString = fixedtime.toISOString().slice(0, 19).replace('T', ' ');
console.log( formatedMysqlString );
বা একটি একক লাইন সমাধান,
var formatedMysqlString = (new Date ((new Date((new Date(new Date())).toISOString() )).getTime() - ((new Date()).getTimezoneOffset()*60000))).toISOString().slice(0, 19).replace('T', ' ');
console.log( formatedMysqlString );
Mysql এ টাইমস্ট্যাম্প ব্যবহার করার সময় এই সমাধানটি নোড.জেগুলির জন্যও কাজ করে।
@ গজুস কুইজিনাসের প্রথম উত্তরটি মোজিলার টোআইএসএসটিং প্রোটোটাইপকে সংশোধন করবে বলে মনে হচ্ছে
@ গজুস উত্তর ধারণাটি ব্যবহার করে সম্পূর্ণ কর্মক্ষেত্র (টাইমজোনকে মেন্টেন করার জন্য):
var d = new Date(),
finalDate = d.toISOString().split('T')[0]+' '+d.toTimeString().split(' ')[0];
console.log(finalDate); //2018-09-28 16:19:34 --example output
নতুন তারিখ ()। toISOString ()। স্লাইস (0, 10) + "" + নতুন তারিখ () .লোক্যালটাইমস্ট্রিং ('এন জিবি');
100% কাজ করছে
আমি সাধারণ জাভাস্ক্রিপ্ট তারিখের ফর্ম্যাট উদাহরণ দিয়েছি দয়া করে বেলো কোডটি চেক করুন
var data = new Date($.now()); // without jquery remove this $.now()
console.log(data)// Thu Jun 23 2016 15:48:24 GMT+0530 (IST)
var d = new Date,
dformat = [d.getFullYear() ,d.getMonth()+1,
d.getDate()
].join('-')+' '+
[d.getHours(),
d.getMinutes(),
d.getSeconds()].join(':');
console.log(dformat) //2016-6-23 15:54:16
Momentjs ব্যবহার
var date = moment().format('YYYY-MM-DD H:mm:ss');
console.log(date) // 2016-06-23 15:59:08
উদাহরণ দয়া করে https://jsfiddle.net/sjy3vjwm/2/ দেখুন
আমার কাছে ঘটে যাওয়া জেএস তারিখকে এসকিউএল ডেটটাইম ফর্ম্যাটে রূপান্তর করার সবচেয়ে সহজ সঠিক উপায়। এটি টাইমজোন অফসেটটি সঠিকভাবে পরিচালনা করে।
const toSqlDatetime = (inputDate) => {
const date = new Date(inputDate)
const dateWithOffest = new Date(date.getTime() - (date.getTimezoneOffset() * 60000))
return dateWithOffest
.toISOString()
.slice(0, 19)
.replace('T', ' ')
}
toSqlDatetime(new Date()) // 2019-08-07 11:58:57
toSqlDatetime(new Date('2016-6-23 1:54:16')) // 2016-06-23 01:54:16
সাবধান হন যে @ পাওলো রবার্তো উত্তরটি নতুন দিনের শুরুতে ভুল ফলাফল আনবে (আমি মন্তব্য রাখতে পারি না)। উদাহরণস্বরূপ :
var d = new Date('2016-6-23 1:54:16'),
finalDate = d.toISOString().split('T')[0]+' '+d.toTimeString().split(' ')[0];
console.log(finalDate); // 2016-06-22 01:54:16
আমরা 23 জুনের পরিবর্তে 22 জুন পেয়েছি!
var _t = new Date();
আপনি যদি ইউটিসি ফর্ম্যাটটি সহজভাবে চান
_t.toLocaleString('indian', { timeZone: 'UTC' }).replace(/(\w+)\/(\w+)\/(\w+), (\w+)/, '$3-$2-$1 $4');
অথবা
_t.toISOString().slice(0, 19).replace('T', ' ');
এবং যদি নির্দিষ্ট সময় অঞ্চল চান
_t.toLocaleString('indian', { timeZone: 'asia/kolkata' }).replace(/(\w+)\/(\w+)\/(\w+), (\w+)/, '$3-$2-$1 $4');
আমি দীর্ঘ সময় ব্যবহার করছি এবং এটি আমার পক্ষে খুব সহায়ক, আপনার পছন্দমতো ব্যবহার করুন
Date.prototype.date=function() {
return this.getFullYear()+'-'+String(this.getMonth()+1).padStart(2, '0')+'-'+String(this.getDate()).padStart(2, '0')
}
Date.prototype.time=function() {
return String(this.getHours()).padStart(2, '0')+':'+String(this.getMinutes()).padStart(2, '0')+':'+String(this.getSeconds()).padStart(2, '0')
}
Date.prototype.dateTime=function() {
return this.getFullYear()+'-'+String(this.getMonth()+1).padStart(2, '0')+'-'+String(this.getDate()).padStart(2, '0')+' '+String(this.getHours()).padStart(2, '0')+':'+String(this.getMinutes()).padStart(2, '0')+':'+String(this.getSeconds()).padStart(2, '0')
}
Date.prototype.addTime=function(time) {
var time=time.split(":")
var rd=new Date(this.setHours(this.getHours()+parseInt(time[0])))
rd=new Date(rd.setMinutes(rd.getMinutes()+parseInt(time[1])))
return new Date(rd.setSeconds(rd.getSeconds()+parseInt(time[2])))
}
Date.prototype.addDate=function(time) {
var time=time.split("-")
var rd=new Date(this.setFullYear(this.getFullYear()+parseInt(time[0])))
rd=new Date(rd.setMonth(rd.getMonth()+parseInt(time[1])))
return new Date(rd.setDate(rd.getDate()+parseInt(time[2])))
}
Date.prototype.subDate=function(time) {
var time=time.split("-")
var rd=new Date(this.setFullYear(this.getFullYear()-parseInt(time[0])))
rd=new Date(rd.setMonth(rd.getMonth()-parseInt(time[1])))
return new Date(rd.setDate(rd.getDate()-parseInt(time[2])))
}
এবং তারপরে ঠিক:
new Date().date()
যা 'মাইএসকিউএল ফর্ম্যাটে' বর্তমান তারিখটি প্রদান করে
যোগ সময় জন্য
new Date().addTime('0:30:0')
যা ৩০ মিনিট যোগ করবে .... ইত্যাদি