Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal8JSON迁移过程插件回调。Unix到日期转换_Php_Unix_Drupal_Database Migration_Drupal 8 - Fatal编程技术网

Php Drupal8JSON迁移过程插件回调。Unix到日期转换

Php Drupal8JSON迁移过程插件回调。Unix到日期转换,php,unix,drupal,database-migration,drupal-8,Php,Unix,Drupal,Database Migration,Drupal 8,我正在编写一个自定义迁移模块,将一些数据从JSON提要移动到Drupal8中 我在内容类型中有基本字符串,但在安装yml文件的过程阶段,似乎无法转换unix时间格式 我有 process: field_post_date: - plugin: callback callable: date source: publish_date 当前 输入-1486573222000 产出-1486573222000 我想要 输入-1486573222000

我正在编写一个自定义迁移模块,将一些数据从JSON提要移动到Drupal8中

我在内容类型中有基本字符串,但在安装yml文件的过程阶段,似乎无法转换unix时间格式

我有

process:
  field_post_date:
    -
      plugin: callback
      callable: date
      source: publish_date
当前 输入-1486573222000 产出-1486573222000

我想要 输入-1486573222000 输出-02-08-2017T17:00:22

如果可能的话,我希望能够将一个参数传递到一个定制的php函数中,我想我可以让它工作。我不知道你怎么看这里的文件,但似乎还是能弄明白


任何帮助都将不胜感激。

请参阅。一旦该补丁登陆,该方法将进入核心,但在此之前,您必须安装该补丁并使用format_date process插件。回调不起作用,因为您必须向回调传递多个参数,这是不可能的。

无法按照我希望的方式工作,因此我在运行drush mi***之前编写了一个php函数来格式化json文件中的日期。它解析日期,并在unix以毫秒为单位时进行更新

<!-- This is a custom php function to convert time stamps from unix to MM-DD-YYYYTHR:MM:SS which is accepted by drupal Date field type-->
<?php 
date_default_timezone_set('GMT'); 
$json = file_get_contents("**your-url**.json");
$array = json_decode($json);
foreach($array->blog_posts as $item){
    echo "<br>";
    $num = $item->publish_date;
    $int = (int)$num;
    $float = (float)$num;
    $epoch = $float;
    $seconds = $epoch * .001;
    $item->publish_date = gmdate('Y-m-d',$seconds)."T".gmdate('H:i:s',$seconds);
}
foreach($array->blog_posts as $item1){
    echo $item1->updated;
    echo "<br>";
    $num = $item1->updated;
    $int = (int)$num;
    $float = (float)$num;
    $epoch = $float;
    $seconds = $epoch * .001;
    $item1->updated = $seconds;
}
file_put_contents('**export**.json', json_encode($array));
?>


我相信只要一个参数就可以做到。您能否提供一个将1个参数传递给php函数然后返回yml标记的示例?为什么您不能使用已经提供的流程插件?它可以将任何格式的日期字符串格式化为任何格式。你的右键对所有这些都是新的,我最终将我的代码移动到了一个自定义的进程插件中!谢谢