windows版的setTimestamp

时间:2010-08-29 11:31:16

标签: php windows

我有一个运行在unix上的php脚本,但我需要它在windows上运行。

setTimestamp只是unix,我需要等效的窗口。

http://php.net/manual/en/datetime.settimestamp.php

示例:

foreach($config['feeds'] as $feed){
    // in case we didn't save a last checked date, set it to sometime in the 70's
    $last_date = new DateTime();
    $last_date->setTimestamp(0);
    $last_date_save = 0;
    // the feeds are identified in the cache file by the hash of their url.
    $feed_hash = sha1($feed['url']);

    if(isset($stats[$feed_hash]['lastPubDate'])){
        if($config['debug'] > 0) echo "feed had lastpubdate\n";
        $last_date = new DateTime();
        $last_date->setTimestamp($stats[$feed_hash]['lastPubDate']);
    }

}

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

神话:

settimestamp 仅限Unix。

真实原因:

它无法正常工作的原因是因为它的可用性是(PHP 5> = 5.3.0)而你的Windows机器可能安装了旧版本的PHP。

解决方案:

  1. Insall最新的PHP。
  2. 您可以使用可用的类constructor(PHP 5> = 5.2.0),如下所示:

    $last_date = new DateTime('@0'); // change construction line like this
    //$last_date->setTimestamp(0); // <-- remove this line

答案 1 :(得分:0)

  

setTimestamp仅为unix

这是一个误解。术语“Unix时间戳”用于计算自1970年1月1日以来的秒数的时间戳格式。它只是一个名称,在技术上并非特定于Unix,并且可以在Windows上以相同的方式工作而没有问题。

维基百科:Unix Time