有人知道如何将JS日期时间转换为MySQL日期时间吗?此外,是否有一种方法可以向JS日期时间添加特定数量的分钟,然后将其传递给MySQL日期时间?
有人知道如何将JS日期时间转换为MySQL日期时间吗?此外,是否有一种方法可以向JS日期时间添加特定数量的分钟,然后将其传递给MySQL日期时间?
简单:只需替换 T。 我从我的 <input class="form-control" type="datetime-local" 中得到的格式是: "2021-02-10T18:18"
所以只需替换 T,它会变成这样:"2021-02-10 18:18" SQL 就可以使用了。
这是我的函数:
var CreatedTime = document.getElementById("example-datetime-local-input").value;
var newTime = CreatedTime.replace("T", " ");
https://www.tutorialrepublic.com/codelab.php?topic=faq&file=javascript-replace-character-in-a-string
const dateToSqlDate = (date) => date.toISOString().slice(0, -5).replace('T', ' ')
console.log(dateToSqlDate(new Date()))
如果考虑时区偏移,这个怎么样?
const getTimestamp = (date = false) => {
const d = ! date ? new Date() : new Date(date);
return new Date(d - d.getTimezoneOffset() * 60 * 1000).toJSON().replace('T', ' ').split('.')[0];
}
console.log(getTimestamp());
console.log(getTimestamp('2016-6-23 1:54:16'));
在其他答案的基础上构建的解决方案,同时保持时区和前导零:
var d = new Date;
var date = [
d.getFullYear(),
('00' + d.getMonth() + 1).slice(-2),
('00' + d.getDate() + 1).slice(-2)
].join('-');
var time = [
('00' + d.getHours()).slice(-2),
('00' + d.getMinutes()).slice(-2),
('00' + d.getSeconds()).slice(-2)
].join(':');
var dateTime = date + ' ' + time;
console.log(dateTime) // 2021-01-41 13:06:01
我用了很久,对我非常有帮助,随意使用
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()
返回当前日期的'MySQL格式'
用于添加时间的是
new Date().addTime('0:30:0')
这将增加30分钟...等等
对我来说没问题:
function DateToSql(d: Date): string {
let dt: Date = new Date(d.getTime());
dt.setTime(dt.getTime() - dt.getTimezoneOffset() * 60000);
return dt.toISOString().slice(0, 19).replace('T', ' ');
}
var local_time ="Fri Oct 06 2023 01:01:25 GMT+0300 (Eastern European Summer Time)";
const d = new Date(local_time); // d=2023-10-05T22:01:25.000Z
today = d.toLocaleString('sv-SE'); // 2023-10-06 01:01:25
select convert_tz('2023-10-06 01:01:25','+03:00', 'SYSTEM') // 2023-10-05 22:01:25
const [dateTime, setDateTime] = useState('');
setDateTime(new Date(YOUR_DATETIME).toLocaleString('sv-SE')); // Any Date formate into this formate (YYYY-MM-DD HH:MM:SS)
// On submit or Something conditions
axios.post('url',dateTime).then((res)=>{});