PHP 插入时间戳进mysql数据库问题

1.之前做了一个登录检测的功能,就是每次用户登录会记录用户登录时间和在线时常。最近测试发现数据混乱,登录时间是对的,但是退出时间不对。经过排查,是apache2服务器崩了,所以重启了apache2服务器,时间就正常了。

2.在解决问题的过程中,整理一下,如何正常使用这个时间,虽然apache2   系统 和 mysql里的时间之间的关系不太清楚。但是知道的是,mysql时间是根据系统(linux)来获取的,现在我们来看一下:

(1) 首先设置好linux服务器的时区和时间:用date命令看一下:

Wed Oct 21 15:26:17 CST 2015   发现是CST,这个是中国标准时间(China Standard Time)    有的可能是EDT( 美国东部夏季时间)  这个就要进行修改:

方法如下:(网上摘抄的感谢作者)

linux系统修改CST时区:
=================================================

初始时间:2012年 09月 14日 星期五 18:15:33 EDT
[root@test ~]# mv /etc/localtime /etc/localtime.bak
[root@test ~]# ln -s/usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
[root@test ~]# date
修改后的时间:
2012年 09月 15日 星期六 18:25:00 CST

(2)修改完成后,重启apahce2服务器,让修改的时间也在apache2中生效。因为插入时间进数据库的时候我们利用了date函数来获取时间,而php获取的时间就是apache的时间

(3)  重启mysql服务器。

我们已经说了mysql服务器里边的时间根据linux系统时间来判断的,我们可以用show variables like "%time_zone";语句来看一下:

如下:

+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        |     SYSTEM |
+------------------+--------+

我们可以看到系统的时区是CST和linux系统的时间是一样的,mysql当前的时区 显示为SYSTEM 也就是和服务器的时区是一样的,也是linux下的。这样就做到了一致。

如果修改了time_zone字段,会影响到select now(); 若使用上述默认的SYSTEM时区 ,我们在数据库里select now();时间就是linux服务器下date命令后的时间。

若是用SQL命令 把time_zone设置为 set time_zone = "+8:00"或者其他的 则select now();会在linux服务器date命令下的时间的基础上进行+8个小时操作。


注意:PHP中date方法中可以由参数设置是12小时制还是24小时制,date('Y-m-d H:i:s',time());

  • h - 带有首位零的 12 小时小时格式
  • H   是表示24小时格式
  • i - 带有首位零的分钟
  • s - 带有首位零的秒(00 -59)
  • a - 小写的午前和午后(am 或 pm)

### 如何使用 Visual Studio 编译 Gmsh 源码 为了成功编译 Gmsh 源码生成可执行文件以及动态库,以下是详细的说明: #### 下载与准备 首先需要从官方站点下载 Gmsh 的源码包[^1]。访问提供的链接 [https://gmsh.info](https://gmsh.info),找到对应的源码压缩包下载。 #### 安装依赖工具 在开始编译之前,确保安装了必要的开发环境和工具链: - **Visual Studio**: 使用支持 C++ 开发的版本(如 Visual Studio 2013 或更高版本)。 - **CMake**: 这是一个跨平台构建工具,用于生成适合特定编译器的项目文件[^2]。 - **Perl**: 如果涉及某些脚本处理,则可能需要用到 Perl 工具[^4]。 #### 构建过程 1. 解压已下载的 Gmsh 源码至本地工作目录。 2. 打开终端或命令提示符窗口,切换到解压后的根目录路径下。 3. 利用 `cmake` 命令来配置项目的初始设置。运行如下指令前需确认 cmake 路径已被加入系统的 PATH 环境变量中: ```bash mkdir build && cd build cmake .. -G "Visual Studio 12 Win64" ``` 此处 `-G "Visual Studio 12 Win64"` 参数指定目标为 VS2013 平台及其架构模式(此处设定了 x64)[^2]。如果采用其他版次则调整相应编号即可,例如对于VS2017应改为 `"Visual Studio 15 2017 Win64"` 4. 在弹出的 GUI 对话框里完成更多自定义选项设定阶段。此时应该注意到几个重要参数的选择情况: - ENABLE_BUILD_LIB 和 ENABLE_BUILD_DYNAMIC 应当被激活以便最终产出 .lib 及其配套共享对象(.dll 文件形式)[^3]. - 同样依据实际需求决定是否启用 mesh、parser、plugins 组件等功能模块. 5. 当所有预置完毕之后点击 Generate 键钮结束当前环节进而转入下一步骤即加载解决方案(sln)文档进入 IDE 内部继续操作流程: 6. 加载由上述步骤产生的 `.sln` 文件到 Visual Studio 中开启正式编辑调试之旅程。选择 Release 版本进行完整编译尝试直至顺利完成整个进程为止。 ```cpp // 示例代码片段展示部分核心函数实现细节 #include <iostream> int main() { std::cout << "Compiling with MSVC..." << std::endl; return 0; } ``` 以上便是基于 Microsoft Visual Studio 实现对开源项目 GMSH 自动化组装的具体方法论介绍.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值