我有一个当前时间的unix时间戳.我想获得第二天开始的unix时间戳.
$current_timestamp = time();
$allowable_start_date = strtotime('+1 day', $current_timestamp);
Run Code Online (Sandbox Code Playgroud)
正如我现在所做的那样,我只是将整整一天添加到unix时间戳中,相反,我想知道在当前这一天剩下多少秒,并且只添加那么多秒才能获得unix第二天第一分钟的时间戳.
最好的方法是什么?
我正在使用代表这样日期的json api
"date" : "/Date(1356081900000)/"
Run Code Online (Sandbox Code Playgroud)
我想把它变成普通的javascript日期.
我能想到解决这个问题的唯一方法是对所有留下时间戳的东西进行替换,然后我可以"转换".
这有效,但它看起来不对.
我的问题.我能以更好的方式做到这一点吗?
UPDATE
unix_timestamp = jsonDate.replace('/Date(', '').replace(')/', '');
newDate = new Date(+unix_timestamp + 1000*3600);
Run Code Online (Sandbox Code Playgroud) 代码优先
echo time() . '<br/>';
echo date('Y-m-d H:i:s') . '<br/>';
date_default_timezone_set('America/New_York');
echo time() . '<br/>';
print_r($timezones[$timezone] . '<br/>');
echo date('Y-m-d H:i:s') . '<br/>';
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,日期是根据时区打印的,但即使在设置默认时区后,unix时间戳也是相同的
我们如何根据时区打印unix时间戳?
我想通过将过滤器应用于Unix时间戳来在twig中显示格式化日期.树枝上有这样的功能吗?
我正在尝试使用PHP获取unix时间戳,但它似乎不起作用.这是我想要转换为unix时间戳的格式:
PHP
$datetime = '2012-07-25 14:35:08';
$unix_time = date('Ymdhis', strtotime($datetime ));
echo $unix_time;
Run Code Online (Sandbox Code Playgroud)
我的结果如下:
20120725023508
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
我知道这是一个非常常见的问题,但我觉得我找到的答案并没有真正解决问题.我将概述我的具体用例,并向其他SO答案和网络上的信息提供摘要.
对于我正在编写的服务,数据库条目是在移动设备和我们的网站上创建和存储的,需要同时进行同步.我们目前的目标是Android和iOS,它们都使用sqlite作为关系数据库.服务器端使用Django和MySQL在Python中实现,但其他解决方案可能在将来取代它.
将按照此SO答案中概述的想法实施同步:https://stackoverflow.com/a/5052208/2076094.对于同步,我们将使用仅由服务器设置并同步到客户端的时间戳,用于创建和更新对象的last_synced_date和时间戳.由于对象引用用户在某些时间所做的事情,因此它们也具有时间戳信息.
我的问题只涉及用于这些时间戳的内部时间表示.UI中的用户表示是内部表示的本地化和格式化版本.在实现语言和用于表示时间戳的不同数据库中有许多不同的方式.经过相当多的研究后,似乎只剩下有效的解决方案了:
该文章这是Hacker News上(两次),建议使用UNIX时间,并提出一个相当不错的参数.正如所预料的那样,关于HN的讨论在上述两点以及一些点之间存在很大差异.
到目前为止,我的结论是,Unix时间戳更容易处理,但似乎不是Django的常用方法.几乎我发现的每个代码示例,从Django教程到很多其他站点,都在models.py中使用DateTimeField,它被映射到SQL中的某种日期字段,具体的术语取决于所使用的数据库.
使用ISO8601日期进行传输和存储的缺点是需要解析它们以创建相应的实现语言的日期类型.这并不难,但有点烦人.对于我们使用的每种语言,您需要一个(小)库或者至少需要比您希望的更多的代码.它不是很漂亮,创建依赖关系,可能会稍微慢一些.在我知道的任何语言中,Unix时间时间戳都没有这个问题.
另一件事是,您可以轻松地使用数据库中的"智能"日期或时间戳字段(以及解析期间).关于时间魔法的问题有很多问题可以解决问题.达到我的链接限制,所以我不能发布任何内容,但你很容易找到一些;)
我们可以使用不包含时区信息的简化格式,只使用UTC.我们只会使用UTC,但似乎如果你使用ISO8601,你也可以使用一种普遍理解和明确的格式.Unix时间始终是UTC,所以你永远不必担心.
当然ISO8601有被人类可读的,当你在原始数据库,我不会有2038前不久重写几行代码的优势,但是这似乎并没有弥补缺点.
似乎通过写出来我实际上已经得到了答案;)无论如何,我很想知道别人的想法以及你在自己的项目中做了什么.请简要介绍一下您的用例,以便其他人可以更好地对您的输入进行分类.
谢谢!
我了解到,可以使用此帖子中的日期过滤器将unix时间戳转换为日期: AngularJS.转换标签值(Unix时间到人类可读时间)
但我不能用它转换我的......
<td>{{contract.start_date_unix | date:'MM-dd-yyyy'}}</td>
Run Code Online (Sandbox Code Playgroud)
在里面contract.start_date_unix,它的价值在1406779200
我有检查了它检查它显示正是我想要的:星期四,2014年7月31日04:00:00 GMT (当然,我想要的格式为MM-DD-YYYY,日期是正确的,这就是我努力在这里证明)
但是当我在上面做日期过滤器时,它只显示01-17-1970或01-16-1970...
可能是什么问题导致这个?
javascript datetime unix-timestamp angularjs angular-filters
我在 Golang 中有一个 time.Time 变量10-30 00:49:07.1236,需要转换为 Go Protobuf timestamp.Timestamp。知道可以使用哪些函数来完成此任务吗?或者我从错误的角度看待这个问题?
我有一些带有Unix时间戳的数据文件(在这种情况下,自1970年1月1日00:00 00:00以来的毫秒数).我想在Matlab中将这些转换为人性化的日期/时间字符串(例如31-Aug-2012 11:36:24).有没有一种简单的方法在Matlab中执行此操作,或者我最好使用外部库(例如java.text.SimpleDateFormat)?
我们在Hive中存储了一个时间戳纪元列(BIGINT).我们希望在这个时代获得Date'yyyy-MM-dd'.问题是我的纪元是以毫秒为单位,例如1409535303522.所以选择时间戳,from_unixtime(timestamp,'yyyy-MM-dd')给出错误的日期结果,因为它预期纪元数秒.
所以我尝试将它除以1000.但是它会转换为Double,我们无法对其应用函数.当我尝试将此双精度转换为Bigint时,即使CAST也无效.