php中时间戳和正常日期的相互转化

1.首先是时间戳转化为正常时间
     用到php的date()函数
     date() 函数格式化一个本地时间/日期。

     语法:
           date(format,timestamp)

     例子:

          将 1381395067转化为2013-10-10

echo date("Y-m-d","1381395117");

          输出:2013-10-10

 注:1381395117这个就是时间戳,php中用time()和mktime()函数可以生成。

2.正常日期转化为时间戳



   用到PHP中的mktime()函数

   mktime() 函数返回一个日期的 Unix 时间戳。

   参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。

   参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。 

mktime(hour,minute,second,month,day,year,is_dst)

    注:如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。 自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。

    例子:

echo(date("M-d-Y",mktime(0,0,0,1,1,2013)))."<br>";
echo mktime(0,0,0,1,1,2013)."<br>";

  输出:

       Jan-01-2013
       1356998400

   已经知道一个日期字符串转化为时间戳:


$year=((int)substr("2013-10-10",0,4));//取得年份
     $month=((int)substr("2013-10-10",5,2));//取得月份
     $day=((int)substr("2013-10-10",8,2));//取得几号
     echo mktime(0,0,0,$month,$day,$year);

     输出:
           1228348800

注:

   php5.1以上时间戳会与实际时间相差8小时,解决办法如下
    1、最简单的方法就是不要用php5.1以上的版本--显然这是不可取的方法!!!
    2、修改php.ini。打开php.ini查找date.timezone 去掉前面的分号= 后面加Asia/Shanghai,重启apache服    务器即可--缺点就是如果程序
    放到别人的服务器上,不能修改php.ini,那就奈何不得了。
    3、在程序中添加时间的初始化的语句的 即:“date_default_timezone_set("Asia/Shanghai"); ”这个可以由程序员任意设置,我的推荐。
    时区标识符,大陆内地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为中国,重庆,上海,乌鲁木齐) ,Etc/GMT-8,Asia/Harbin
港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)
还有新加坡:Asia/Singapore
这样就可以实现输出的是北京时间了

(感谢http://blog.sina.com.cn/s/blog_498e520b0100dj4h.html luzvee 对相差8小时的总结)


转载于:https://my.oschina.net/qiushi/blog/167758

### 在 Postman 中构建 POST 请求的 List<对象> 数据 在 Postman 中发送包含 `List<对象>` 的数据时,可以通过以下方式实现: #### 配置请求头 确保在请求头中设置 `Content-Type` 为 `application/json`,以便服务器能够正确解析 JSON 格式的数据[^1]。 #### 构建请求体 在 Postman 的 `Body` 标签下选择 `raw` 格式,并将数据格式设置为 JSON。以下是构建一个包含 `List<对象>` 的 JSON 示例: ```json [ { "id": 1, "name": "Item 1" }, { "id": 2, "name": "Item 2" } ] ``` 此 JSON 数组表示一个包含多个对象的列表,每个对象都有 `id` `name` 属性[^1]。 #### 时间戳与北京时间的换方法 时间戳通常以 Unix 时间(自 1970 年 1 月 1 日起的秒数)表示。为了将时间戳换为北京时间,可以使用以下方法: - **从时间戳生成北京时间:** 使用 JavaScript 可以轻松实现时间戳到北京时间的换。以下是一个示例代码片段: ```javascript var timestamp = Math.floor(Date.now() / 1000); // 获取当前时间戳(秒) var beijingTime = new Date(timestamp * 1000).toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' }); console.log("北京时间:" + beijingTime); ``` 上述代码通过 `Date.now()` 获取当前时间戳,并将其换为北京时间字符串[^4]。 - **从北京时间生成时间戳:** 如果需要将北京时间换为时间戳,可以使用以下方法: ```javascript var beijingTimeString = "2023-10-01 12:00:00"; // 北京时间字符串 var beijingDate = new Date(beijingTimeString.replace(/-/g, '/')); // 换为日期对象 var timestamp = Math.floor(beijingDate.getTime() / 1000); // 换为时间戳 console.log("时间戳:" + timestamp); ``` 上述代码将指定的北京时间字符串换为 Unix 时间戳。 #### 在 Postman 中动态生成时间戳 如果需要在 Postman 中动态生成时间戳并添加到请求体中,可以使用 Pre-request Script 功能。以下是一个示例脚本: ```javascript var timestamp = Math.floor(Date.now() / 1000); // 当前时间戳 pm.variables.set("timestamp", timestamp); // 将时间戳存储为变量 ``` 然后,在请求体中可以通过以下方式引用该变量: ```json { "timestamp": "{{timestamp}}" } ``` 此方法允许在每次发送请求时动态生成时间戳[^4]。 ### 注意事项 - 确保 JSON 数据结构与服务器端定义的对象模型一致,否则可能导致解析失败[^1]。 - 如果需要对请求参数进行签名验证,可以参考提供的加密规则示例[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值