即时通讯使用php 5.4.6和MySQL 5.5.29,我将UNIX TIMESTAMP转换为MYSQL DATETIME,反之亦然.Mysql和php在同一台本地机器上运行.
我有一个简单的mysql表
CREATE TABLE Entry(
id SERIAL PRIMARY KEY,
created DATETIME NOT NULL);
Run Code Online (Sandbox Code Playgroud)
要插入数据我使用php PDO和mysql NOW().这很好,正确的日期时间存储在数据库中.
我的计划是在客户端使用unix时间戳(服务器端的php和mysql).
所以我想向我的客户提供unix时间戳.因此我使用MySql UNIX_TIMESTAMP()函数直接在查询中进行转换.
所以示例查询如下所示:
SELECT created, UNIX_TIMESTAMP(created) AS TS FROM Entry
Run Code Online (Sandbox Code Playgroud)
结果:created = 2013-02-14 20:47:35 TS = 1360871255
所以现在我想做另一种方式,我传递一个UNIX时间戳,并希望将它与我的数据库中的条目进行比较.不幸的是我无法编写有效的PHP脚本.我不知道为什么,但是当我将相同的时间戳(1360871255)传递给PHP时,我不会使用此方法获得2013-02-14 20:47:35:
public static function toDateTime($unixTimestamp){
return date("Y-m-d H:m:s", $unixTimestamp);
}
Run Code Online (Sandbox Code Playgroud)
当我打电话给DateTime(1360871255)时会返回2013-02-14 20:02:35这不是原来的DateTime.
我知道,我不需要将1360871255格式化为Ymd H:m:s以在MYSQL中使用它,但1360871255似乎不是我预期的时间(并且MYSQL UNIX_TIMESTAMP已经返回).
我想要做的是一个简单的查询,向我显示比某个时间戳更早的条目,这样的简单:
SELECT * FROM Entry WHERE created < 1360871255
Run Code Online (Sandbox Code Playgroud)
但正如我之前提到的,查询结果不是预期的,因为1360871255似乎不是正确的时间.
我没有为php中的mysql连接指定任何特殊时区.
有什么建议?
如果我有一个随机的unix时间戳,我怎样才能将其四舍五入到今天的午夜或用户选择的午夜.原因是我希望在某一天的午夜之后添加小时和分钟.
例如,如果时间戳是,1324189035那么我如何删除小时,分钟和秒以将时间戳放在当天的午夜.
让我们说在我的mysql数据库中我有一个时间戳2013-09-30 01:16:06,让我们说这个变量是$ts.
如何输出这个以显示更像September 30th, 2013?
我知道,"里面没有用户可维修的部件"......但我很好奇:
在Core Data sqlite3 DB中,似乎我可以在ZDATE中获取日期,如下所示:
sqlite> select datetime(ZDATE,'unixepoch','31 years','localtime') from ZMYCLASS;
2003-12-11 19:00:00
2009-12-31 19:00:00
2009-01-24 19:00:00
2011-01-01 19:00:00
2009-10-03 20:00:00
...
Run Code Online (Sandbox Code Playgroud)
Unix Epoch我得到了,但为什么31年?
我正在尝试以mm/dd/yyyy格式获取文件上的日期戳
time.ctime(os.path.getmtime(file))
Run Code Online (Sandbox Code Playgroud)
给我详细的时间戳 Fri Jun 07 16:54:31 2013
如何将输出显示为 06/07/2013
假设一个给定的变量,它包含一个UNIX时间戳,但无论是以秒还是毫秒格式都是未知的,我想分配一个以秒为单位格式的变量
unknown = 1398494489444 # This is millisecond
t = ???
Run Code Online (Sandbox Code Playgroud)
更新:我明白在不给出一些限制的情况下无法判断,所以就是这样
Assume current_ts = current unix timestamp
在我看来,我不知道在1970年之前存储日期的机制.1作为Unix时间戳.由于那个日期是Unix"时代",这并不奇怪.
但是 - 即使它不是为此而设计的 - 我仍然希望以Unix格式存储过去的日期.
我需要这个是有原因的.
所以我的问题是:如何让unix-timestamps包含"无效"但仍然有工作日期?存储负数秒会有效吗?我们甚至可以在unix时间戳中存储负数秒吗?我的意思是不是没有签名?
此外,如果我是正确的那么我只能存储日期,因为它1901. dec. 13 20:45:52可以在任何方式进一步延伸回历史?
我想将UTC时间字符串转换为unix时间戳.我这样做
fmt.Printf("%s %d\n", time.Now().String(), time.Now().Unix())
fmt.Printf("%s %s\n", time.Now().UTC().String(), time.Now().UTC().Unix())
Run Code Online (Sandbox Code Playgroud)
但我得到了相同的unix时间戳 1499018765
2017-07-02 20:06:05.5582802 +0200 CEST 1499018765
2017-07-02 18:06:05.791337 +0000 UTC 1499018765
好的,我正在我的CRM系统中处理一个日历应用程序,我需要找到半小时的上限和下限超过某人在日历中输入事件的时间戳,以便在数据库上运行一些SQL确定他们是否已在该时段内预订了某些内容.
例如,我的时间戳为1330518155 = 2012年2月29日16:22:35 GMT + 4所以我需要得到1330516800和1330518600等于16:00和16:30.
如果有人有任何想法或认为我正在以愚蠢的方式开发日历,请告诉我!这是我第一次参与这么多涉及时间和日期工作的任务,所以任何建议都值得赞赏!
有没有办法在C#中快速/轻松地解析Unix时间?我对这种语言很陌生,所以如果这是一个非常明显的问题,我会道歉.IE我有一个格式的字符串[自纪元以来的秒数].[毫秒].在C#中是否有Java的SimpleDateFormat?