如何在 PHP 中创建 SQLite 时间戳值

发布于 2024-10-29 01:07:28 字数 235 浏览 4 评论 0原文

我想在 PHP 中生成时间戳,然后将该值存储在 SQLite 中。

这是代码:

$created_date = 日期("YYYY-MM-DD HH:MM:SS",时间());

这是存储在数据库中的内容(看起来是错误的): 11/21/0020 12:39:49 PM

我应该如何更改代码以在 SQLite 中正确存储当前日期/时间

I want to generate a timestamp in PHP and then store that value in SQLite.

Here is the code:

$created_date = date("YYYY-MM-DD
HH:MM:SS",time());

Here is what gets stored in the DB (which looks wrong):
11/21/0020 12:39:49 PM

How should I change my code to store the current date/time properly in SQLite

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

幸福丶如此 2024-11-05 01:07:29
$db = new PDO('sqlite:database.db', null, null, [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
]);

$sql = <<<'SQL'
INSERT INTO stats
(timestamp, ip)
VALUES (datetime('now'), :ip)
SQL;

$query = $db->prepare($sql);
$query->execute([
    ':ip' => $ip,
]);
$db = new PDO('sqlite:database.db', null, null, [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
]);

$sql = <<<'SQL'
INSERT INTO stats
(timestamp, ip)
VALUES (datetime('now'), :ip)
SQL;

$query = $db->prepare($sql);
$query->execute([
    ':ip' => $ip,
]);
乱了心跳 2024-11-05 01:07:28

为什么不直接更新您的 SQLite 查询以使用 date('now') 呢? 参考

但是,在 PHP 中你应该能够使用

$created_date = date('Y-m-d H:i:s');

Why not just update your SQLite query to use date('now')? reference

But, within PHP you should be able to use

$created_date = date('Y-m-d H:i:s');
梦归所梦 2024-11-05 01:07:28

我刚刚为我自己的项目实现了这个。

我的解决方案是使用官方指定的 UTC 时间格式 网络:RFC3339
您可以使用以下任何PHP 时间格式常量< /a>:

  • DATE_RFC3339
  • DATE_W3C
  • DATE_ATOM

示例:

$sqlite_timestamp = date(DATE_RFC3339);
echo "My SQLite timestamp = ".$sqlite_timestamp;

最好的部分是字母数字顺序与日期顺序相对应,因此您可以在日期字段上使用 ORDER BY SQL 语句!

I just implemented this for my own project..

My solution was to use the UTC time format officially specified for the web: RFC3339.
You can use any of the following PHP time format constants:

  • DATE_RFC3339
  • DATE_W3C
  • DATE_ATOM

Example:

$sqlite_timestamp = date(DATE_RFC3339);
echo "My SQLite timestamp = ".$sqlite_timestamp;

The best part is the alphanumeric order corresponds to the date order, so you can use ORDER BY SQL statements on the date fields!

迷途知返 2024-11-05 01:07:28

您如何检查存储的值是什么?另外,数据库中列的数据类型是什么?您是否知道 sqlite> sqlite均未打字,所以所有值都被存储为字符串或整数吗?

How do you check what the stored value is? Also, what is the datatype of the column in the database? Are you aware that SQLite is typeless, so all values are being stored as strings or integers?

明月夜 2024-11-05 01:07:28
  $created_date = date('Y-m-d H:i:s');
  echo $created_date ."<br />\n";

  $created_date = date('l, F jS, Y - g:ia');
  echo $created_date ."<br />\n";

  $created_date = date('n/j/y H:i:s');
  echo $created_date ."<br />\n";

  $created_date = date('r'); // RFC 2822 formatted date
  echo $created_date ."<br />\n";

  $created_date = date('c'); // ISO-8601 formatted date
  echo $created_date ."<br />\n";

输出可能是:

2011-04-01 19:33:40
Friday, April 1st, 2011 - 7:33pm
4/1/11 19:33:40
Fri, 01 Apr 2011 19:33:40 +0200
2011-04-01T19:33:40+02:00

请注意 date() 函数取决于默认时区在 PHP 配置中设置。您始终可以使用 echo date_default_timezone_get(); 进行测试,或者通过 date_default_timezone_set('TIMEZONE_IDENTIFIER'); 设置它,其中 TIMEZONE_IDENTIFIER 是 支持的时区列表

  $created_date = date('Y-m-d H:i:s');
  echo $created_date ."<br />\n";

  $created_date = date('l, F jS, Y - g:ia');
  echo $created_date ."<br />\n";

  $created_date = date('n/j/y H:i:s');
  echo $created_date ."<br />\n";

  $created_date = date('r'); // RFC 2822 formatted date
  echo $created_date ."<br />\n";

  $created_date = date('c'); // ISO-8601 formatted date
  echo $created_date ."<br />\n";

Output could be:

2011-04-01 19:33:40
Friday, April 1st, 2011 - 7:33pm
4/1/11 19:33:40
Fri, 01 Apr 2011 19:33:40 +0200
2011-04-01T19:33:40+02:00

Be aware that date() function depends of default timezone set in PHP config. You can always test it using echo date_default_timezone_get(); or set it by date_default_timezone_set('TIMEZONE_IDENTIFIER'); where TIMEZONE_IDENTIFIER is one from the list of supported timezones.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文