我有下表所属的属性
CREATE TABLE `test` (
`id` int(6) NOT NULL AUTO_INCREMENT,
`active` varchar(4) CHARACTER SET latin1 DEFAULT NULL,
`von` date DEFAULT NULL,
`bis` date DEFAULT NULL,
`rabatt` varchar(255) CHARACTER SET latin1 DEFAULT NULL,
`code` varchar(64) CHARACTER SET latin1 DEFAULT NULL,
`text_kurz` text CHARACTER SET latin1,
`linkname` varchar(1024) CHARACTER SET latin1 DEFAULT NULL,
`link` varchar(2048) CHARACTER SET latin1 DEFAULT NULL,
`special` varchar(255) CHARACTER SET latin1 DEFAULT NULL,
`type` varchar(255) CHARACTER SET latin1 DEFAULT NULL,
`hersteller` varchar(128) CHARACTER SET latin1 DEFAULT NULL,
`smb` smallint(1) DEFAULT NULL,
`dhs` smallint(1) DEFAULT NULL,
`sidebar` varchar(4) CHARACTER SET latin1 DEFAULT 'ja',
`img_tag` text CHARACTER SET latin1,
`dm_bild` varchar(255) CHARACTER SET latin1 DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `von` (`von`),
KEY `bis` (`bis`),
KEY `type` (`type`),
KEY `active` (`active`),
KEY `code` (`code`),
FULLTEXT KEY `Volltext` (`text_kurz`)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8
我想用php插入德语格式的unix时间戳 我一直在尝试以下
$time = "1057941242";
$qry = 'INSERT INTO test (active, von, bis, rabatt, code, text_kurz)
VALUES("ja",FROM_UNIXTIME('.$gutschein->startDate.'),
FROM_UNIXTIME('.$gutschein->endDate.'),
"'.$gutschein->title.'",
"'.$gutschein->code.'",
"'.$gutschein->shortDescription.'")'
答案 0 :(得分:9)
自UNIX纪元以来,您的时间戳(例如1346882400000)似乎在微秒,而FROM_UNIXTIME()
期望自UNIX纪元以来秒中的参数。因此,您应该将参数除以1000:
$qry = 'INSERT INTO test (active, von, bis, rabatt, code, text_kurz)
VALUES("ja",FROM_UNIXTIME('.$gutschein->startDate/1000.'),
FROM_UNIXTIME('.$gutschein->endDate/1000.'),
"'.$gutschein->title.'",
"'.$gutschein->code.'",
"'.$gutschein->shortDescription.'")'
您还应该考虑使用prepared statements,将变量作为不参与SQL评估的参数传递到其中。
答案 1 :(得分:0)
我建议你改变一下你的方法。
不是将本地化数据存储在数据库中,而是可以将它们存储在特定格式中并从那里“翻译”它。例如,您在von和bis DATE字段中存储日期。相反,您可以将这些字段转换为INT,只存储unix时间戳。
这种方法可以让您将日期翻译成您需要的任何语言环境/格式 - 在您的情况下是德语。
但是,如果您只想让上述内容工作,那么您将需要更改INSERT语句,如下所示(我假设$ gutschein-> startDate是一个数字,即unix时间戳
$time = "1057941242";
$qry = 'INSERT INTO test (active, von, bis, rabatt, code, text_kurz) '
. 'VALUES('
. '"ja", '
. 'FROM_UNIXTIME(' . $gutschein->startDate . ', "%Y-%m-%d %H:%i:%s"), '
. 'FROM_UNIXTIME(' . $gutschein->endDate . ', "%Y-%m-%d %H:%i:%s"), '
. '"' . $gutschein->title . '", '
. '"'.$gutschein->code.'", '
. '"'.$gutschein->shortDescription.'")'
如果德国的日期格式不正确,请参考以下链接以获取最适合您的格式