IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

五四陈透过PHP看JAVA系列:strtotime

五四陈科学院 2010-03-05 08:57:38 累计浏览 3,344 次
本机暂存

本系列主要总结PHP与JAVA之间的一些异同,给从PHP学JAVA或者是从JAVA学PHP的同学一点启发,五四陈科学院出品。

第一部分,先看PHP的Date/Tme函数

详细见:http://www.54chen.com/p/ref.datetime.html

今天要说的是其中的strtotime函数

http://www.54chen.com/p/function.strtotime.html

函数的功能:接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数)。

例子:

<?php
echo strtotime(”2010-3-3 3:3:3″);
?>

将得到结果:

1267585383

在PHP应用中,经常在需要记录时间的时候,使用Mysql的int(10)来保存这个 Unix 时间戳,并且时间的比较查找等操作,都用大于小于来进行。

第二部分,看JAVA对应的方法

try {
fromUnixTime = new java.text.SimpleDateFormat(”dd/MM/yyyy HH:mm:ss”).parse(”01/03/2010 08:00:00″).getTime();
fromUnixTime /= 1000;
} catch (ParseException e1) {
e1.printStackTrace();
}

看上去有点麻烦,不过因为java中操作mysql的jdbc对类型的要求是非常严格的,所以一般在java项目中,不使用int来代替datetime类型的字段。

第三部分,提升部分,反过来咋整(从Unix时间戳格式化为datetime)?

先说PHP:

<?php
echo date(”Y-m-d H:i:s”,1267585383);
?>

再说JAVA:

String date2 = new java.text.SimpleDateFormat(”dd/MM/yyyy HH:mm:ss”).format(new Date ((long)1267585383*1000));
System.out.println(date2);

注意java中的强转为long不能丢,否则计算后结果不正确。

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. SmartSprites - 命令行形式的CSS Sprites生成器 (累计阅读 123,894)
  2. 使用gettext来支持PHP的多语言 (累计阅读 39,268)
  3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
  4. Java开发岗位面试题归类汇总 (累计阅读 22,156)
  5. android 开发入门 (累计阅读 19,527)
  6. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,408)
  7. 我的PHP,Python和Ruby之路 (累计阅读 13,146)
  8. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,789)
  9. HashMap解决hash冲突的方法 (累计阅读 12,654)
  10. 15个最好的免费开源电子商务平台 (累计阅读 12,541)