Javascript时间戳到php-mysql时间戳类型
我将javascript时间戳数据发送到php,添加到mysql中,我在mysql中键入时间戳: 数据库-开始时间类型: 现在,我尝试使用ajax发送来自javascript的timestampJavascript时间戳到php-mysql时间戳类型,javascript,php,mysql,date,timestamp,Javascript,Php,Mysql,Date,Timestamp,我将javascript时间戳数据发送到php,添加到mysql中,我在mysql中键入时间戳: 数据库-开始时间类型: 现在,我尝试使用ajax发送来自javascript的timestampvar startTime=Date.Now()到php,我需要转换成mysql的时间戳类型。。。所以我试着: $datum = $app->request->post('startTime'); $startTime = $datum->format('Y-m
var startTime=Date.Now()代码>到php,我需要转换成mysql的时间戳类型。。。所以我试着:
$datum = $app->request->post('startTime');
$startTime = $datum->format('Y-m-d H:i:s'); //FIRST ATTEMP
$startTime = date("Y-m-d H:i:s", $datum); //SECOND TRY
上面我写了两个案例,我尝试了,但都不起作用。。。如何将其转换为正确的格式以添加到数据库
也许你会问,为什么在PHP中有这个,为什么用JS来实现?
因为我的应用程序将使用Autralia(以及全世界)的用户,而服务器位于欧洲,所以如果我使用php服务器时间,那么我将生成错误的日期。下面的代码将JS日期/时间转换为MySQL格式:
function SQLdate_now() {
/* MySQL format */
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();
var output = d.getFullYear() + '-' +
((''+month).length<2 ? '0' : '') + month + '-' +
((''+day).length<2 ? '0' : '') + day + ' ' +
((''+hour).length<2 ? '0' :'') + hour + ':' +
((''+minute).length<2 ? '0' :'') + minute + ':' +
((''+second).length<2 ? '0' :'') + second;
return(output);
};
函数SQLdate\u now(){
/*MySQL格式*/
var d=新日期();
变量月份=d.getMonth()+1;
var day=d.getDate();
var hour=d.getHours();
var minute=d.getMinutes();
var second=d.getSeconds();
变量输出=d.getFullYear()+'-'+
((''+month).length下面的代码将JS日期/时间转换为MySQL格式:
function SQLdate_now() {
/* MySQL format */
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();
var output = d.getFullYear() + '-' +
((''+month).length<2 ? '0' : '') + month + '-' +
((''+day).length<2 ? '0' : '') + day + ' ' +
((''+hour).length<2 ? '0' :'') + hour + ':' +
((''+minute).length<2 ? '0' :'') + minute + ':' +
((''+second).length<2 ? '0' :'') + second;
return(output);
};
函数SQLdate\u now(){
/*MySQL格式*/
var d=新日期();
变量月份=d.getMonth()+1;
var day=d.getDate();
var hour=d.getHours();
var minute=d.getMinutes();
var second=d.getSeconds();
变量输出=d.getFullYear()+'-'+
((''+month).length下面的代码将JS日期/时间转换为MySQL格式:
function SQLdate_now() {
/* MySQL format */
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();
var output = d.getFullYear() + '-' +
((''+month).length<2 ? '0' : '') + month + '-' +
((''+day).length<2 ? '0' : '') + day + ' ' +
((''+hour).length<2 ? '0' :'') + hour + ':' +
((''+minute).length<2 ? '0' :'') + minute + ':' +
((''+second).length<2 ? '0' :'') + second;
return(output);
};
函数SQLdate\u now(){
/*MySQL格式*/
var d=新日期();
变量月份=d.getMonth()+1;
var day=d.getDate();
var hour=d.getHours();
var minute=d.getMinutes();
var second=d.getSeconds();
变量输出=d.getFullYear()+'-'+
((''+month).length下面的代码将JS日期/时间转换为MySQL格式:
function SQLdate_now() {
/* MySQL format */
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();
var output = d.getFullYear() + '-' +
((''+month).length<2 ? '0' : '') + month + '-' +
((''+day).length<2 ? '0' : '') + day + ' ' +
((''+hour).length<2 ? '0' :'') + hour + ':' +
((''+minute).length<2 ? '0' :'') + minute + ':' +
((''+second).length<2 ? '0' :'') + second;
return(output);
};
函数SQLdate\u now(){
/*MySQL格式*/
var d=新日期();
变量月份=d.getMonth()+1;
var day=d.getDate();
var hour=d.getHours();
var minute=d.getMinutes();
var second=d.getSeconds();
变量输出=d.getFullYear()+'-'+
(“”+月)。长度首先,您应该确保$datum
中的数据实际上是一个数字:
$datum = $app->request->post('startTime');
if ( ! ctype_digit($datum)) {
die('Invalid startTime!');
}
在Javascript中,Date.now()
方法返回以毫秒为单位的时间戳。处理日期之类的内容的PHP函数使用秒,因此必须将其除以1000(milli表示“千分之一”):
如果您已经在浏览器中执行了此操作,那么您当然应该忽略此操作
在将秒插入数据库之前,您必须将秒转换为MySQL能够理解的格式。DATETIME
/时间戳
格式为YYYY-MM-DD HH:MM:SS
。在PHP中,您可以将其格式化为:
$datum = date('Y-m-d H:i:s', $datum);
var offset = new Date().getTimezoneOffset();
首先,您应该确保$datum
中的数据实际上是一个数字:
$datum = $app->request->post('startTime');
if ( ! ctype_digit($datum)) {
die('Invalid startTime!');
}
在Javascript中,Date.now()
方法返回以毫秒为单位的时间戳。处理日期之类的内容的PHP函数使用秒,因此必须将其除以1000(milli表示“千分之一”):
如果您已经在浏览器中执行了此操作,那么您当然应该忽略此操作
在将秒插入数据库之前,您必须将秒转换为MySQL能够理解的格式。DATETIME
/时间戳
格式为YYYY-MM-DD HH:MM:SS
。在PHP中,您可以将其格式化为:
$datum = date('Y-m-d H:i:s', $datum);
var offset = new Date().getTimezoneOffset();
首先,您应该确保$datum
中的数据实际上是一个数字:
$datum = $app->request->post('startTime');
if ( ! ctype_digit($datum)) {
die('Invalid startTime!');
}
在Javascript中,Date.now()
方法返回以毫秒为单位的时间戳。处理日期之类的内容的PHP函数使用秒,因此必须将其除以1000(milli表示“千分之一”):
如果您已经在浏览器中执行了此操作,那么您当然应该忽略此操作
在将秒插入数据库之前,您必须将秒转换为MySQL能够理解的格式。DATETIME
/时间戳
格式为YYYY-MM-DD HH:MM:SS
。在PHP中,您可以将其格式化为:
$datum = date('Y-m-d H:i:s', $datum);
var offset = new Date().getTimezoneOffset();
首先,您应该确保$datum
中的数据实际上是一个数字:
$datum = $app->request->post('startTime');
if ( ! ctype_digit($datum)) {
die('Invalid startTime!');
}
在Javascript中,Date.now()
方法返回以毫秒为单位的时间戳。处理日期之类的内容的PHP函数使用秒,因此必须将其除以1000(milli表示“千分之一”):
如果您已经在浏览器中执行了此操作,那么您当然应该忽略此操作
在将秒插入数据库之前,您必须将秒转换为MySQL能够理解的格式。DATETIME
/时间戳
格式为YYYY-MM-DD HH:MM:SS
。在PHP中,您可以将其格式化为:
$datum = date('Y-m-d H:i:s', $datum);
var offset = new Date().getTimezoneOffset();
正如我们在评论中已经指出的那样,由于存在漏洞,将客户端时间戳存储到数据库是非常不可取的。一个相当好的折衷办法是将时区偏移量(可从javascript访问)保存到cookie中
在JavaScript中,您可以在几分钟内读取偏移量,如下所示:
$datum = date('Y-m-d H:i:s', $datum);
var offset = new Date().getTimezoneOffset();
保存到cookie后,还可以从PHP脚本访问它,并使您能够计算正确的日期和时间字符串。正如我们在评论中指出的,由于存在漏洞,非常不推荐将客户端时间戳存储到数据库中。一个相当好的折衷方法是时区偏移,它是可以访问的从javascript,保存到cookie中
在JavaScript中,您可以在几分钟内读取偏移量,如下所示:
$datum = date('Y-m-d H:i:s', $datum);
var offset = new Date().getTimezoneOffset();
保存到cookie后,还可以从PHP脚本访问它,并使您能够计算正确的日期和时间字符串。正如我们在评论中指出的,它非常不常见