Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript时间戳到php-mysql时间戳类型_Javascript_Php_Mysql_Date_Timestamp - Fatal编程技术网

Javascript时间戳到php-mysql时间戳类型

Javascript时间戳到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

我将javascript时间戳数据发送到php,添加到mysql中,我在mysql中键入时间戳:

数据库-开始时间类型:

现在,我尝试使用ajax发送来自javascript的timestamp
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脚本访问它,并使您能够计算正确的日期和时间字符串。

正如我们在评论中指出的,它非常不常见