是否有一个PHP库将unix时间戳转换为这样的格式:
8 hours and 17 minutes ago
Run Code Online (Sandbox Code Playgroud)
我做了我自己的脚本,这样做,我只是无法追踪它,宁愿不花时间重新创建它(加上我认为它可以更有效地完成).
我原来的代码是这样的:
$seconds = time() - $timestamp;
$minutes = 0;
$hours = 0;
$days = 0;
$weeks = 0;
$months = 0;
$years = 0;
while($seconds >= 60)
{
$seconds -= 60;
$minutes ++;
if($minutes >= 60)
{
$minutes -= 60;
$hours ++;
if($hours >= 24)
{
// etc
}
}
}
if($hours < 1) return "$minutes minute" . ($minutes == 1 ? "" : "s")) . " and $seconds seconds" . ($seconds …Run Code Online (Sandbox Code Playgroud) 我不知道为什么,但我喜欢使用Unix时间戳.也许是因为我需要像数字那样用时间进行计算,例如time() - 604800.
现在我有整数列,我插入time()的结果.我认为这不是正确的方式,是吗?是否有默认值 - unix时间戳?
我用Java做过这个:
Calendar lCDateTime = Calendar.getInstance();
date = lCDateTime.getTimeInMillis();
Run Code Online (Sandbox Code Playgroud)
我用PHP完成了这个:
$date = date(U);
Run Code Online (Sandbox Code Playgroud)
在Java中,它正在工作.在PHP中它没有.
在Java中我得到:1358789604926
在PHP中我得到:( 1358790190 一个较小的数字)
谁能解释这两个结果之间的区别?
我有两个日期时间字符串,如下所示......
2014-09-03T02:23:09Z 和 2014-09-03T03:24:57Z
现在,我必须将两个日期时间分配给一些变量并比较它们,如下所示:
d1=2014-09-03T02:23:09Z
d2=2014-09-03T03:24:57Z
if (d1 < d2 )
Run Code Online (Sandbox Code Playgroud)
我浏览了很多网站但没有找到解决方案。我尝试了下面的方法,但它不起作用。
#set -vx
date1=`date -d "2014-09-03T04:27:23Z" +"%Y-%m-%dT%TZ"`
date2=`date -d "2014-09-03T02:23:09Z" +"%Y-%m-%dT%TZ"`
date3=`date -d "2014-09-03T05:23:09Z" +"%Y-%m-%dT%TZ"`
#date1=`date -d "2014-09-03T04:27:23Z"`
#date2=`date -d "2014-09-03T02:23:09Z"`
#date3=`date -d "2014-09-03T05:23:09Z"`
if [ ${date3} -lt ${date1} ] ; then
echo "working"
else
echo "gone"
fi
if [ ${date2} -gt ${date1} ] ; then
echo "working"
else
echo "gone"
fi
Run Code Online (Sandbox Code Playgroud)
我面临以下错误:
sh compare.sh
date: invalid date `2014-09-03T04:27:23Z'
date: invalid date `2014-09-03T02:23:09Z'
date: invalid date `2014-09-03T05:23:09Z'
working …Run Code Online (Sandbox Code Playgroud) 尝试使用时区将UNIX时间戳转换为Oracle时间戳.期望看到不同的输出,但是datetime部分是相同的.
什么是拧?
select (timestamp '1970-01-01 00:00:00' + numtodsinterval(1204104116656/1000,'second')) at time zone tz_offset('EST') from dual;
Run Code Online (Sandbox Code Playgroud)
产出:27-FEB-08 09.21.56 .656000000 AM -05:00
select (timestamp '1970-01-01 00:00:00' + numtodsinterval(1204104116656/1000,'second')) at time zone tz_offset('PST') from dual;
Run Code Online (Sandbox Code Playgroud)
产出:27-FEB-08 09.21.56 .656000000 AM -07:00
为什么日期/时间部分是一样的?Oracle不做调整吗?
我有一列在 C1 上保存 Unix 时间戳,我正在寻找公式来创建一个新列,将时间戳转换为 dd/mm/yyyy hh:mm:ss。
这是时间戳的示例:
1409502202
Run Code Online (Sandbox Code Playgroud) 我正在使用一个数据集,其中有一个日期字段,其日期如下所示:
42437.4261290278
42437.5460402431
42437.5478825116
数字中较大的一个是最近的.我们中的一个人认为它与unix时代和交替时间表示有关.我们现在面临的问题是将上述日期读入标准MM-DD-YYYY格式.任何人对如何将这些备用日期表格转换为标准日期有任何想法?
我想用C#做这个.作为参考,我预计最后两个日期列于2016年3月8日的某个时间,并且在此之前的第一个时间.
我想在未来生成一些 unix Timestamp。因此我使用像unixtimestamp.com这样的生成器 。但是当我使用任何生成的时间戳时,例如在 chrome 或 firefox 的 console.log 中,它生成的不是现在的时间戳,而是 1970 年的时间戳。
示例:1462277206 是 2016 年 5 月 3 日星期二 12:06:46 GMT 的 Unix 时间戳。
但是在控制台中new Date(1462277206)返回
Sat Jan 17 1970 23:11:17 GMT+0100 (CET).
我究竟做错了什么?
谢谢你的帮助!
莫夫
我有两个 UNIX 时间戳并且我正在使用 KOTLIN
1) 旧时间 - 1534854646 2) 当前时间 - 1534857527
现在我想要小时和分钟的差异。
val result = DateUtils.getRelativeTimeSpanString(1534854646, 1534857527, 0)
Run Code Online (Sandbox Code Playgroud)
但它给了我 2 秒,但实际时差约为 0 小时 48 分钟。
我也尝试过:
long mills = 1534857527 - 1534854646;
int hours = millis/(1000 * 60 * 60);
int mins = (mills/(1000*60)) % 60;
String diff = hours + ":" + mins;
Run Code Online (Sandbox Code Playgroud)
但它仍然给出 0 小时 0 分钟。