组织日期与时间和时区。 (转换为准确的时间戳) [英] Organizing dates with times and timezones. (Converting to accurate timestamp.)

查看:226
本文介绍了组织日期与时间和时区。 (转换为准确的时间戳)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在我的大脑中挑选了几天,有以下的难题。



我基本上有以下复杂的mySQL表:

  | ID | TITLE | DESCRIPTION |活动| DATE | 
| ---- | -------------- | ------------------- | ----- - | ------------------------- |
| 1 |大画| 3天工作|不| 03/10/2013 |
| 2 |会议|与代表。 |是| 02/15/2013 09:00 -05:00 |
| 3 |演示| 5画|是| 08/02/2013 22:00 +02:00 |
| 4 |圆形油漆。 |一周|不| 04/05/2013 |
| 5 |会议|毕加索|是| 04/22/2013 18:00 -05:00 |

(编辑:也许我需要澄清,DATE列未设置为DATE或DATETIME [由于需要在数据中包含时区],而是作为VARCHAR,这就是为什么组织从一开始就很复杂)。



你可以看到,这是一个表,其中包含了一个画家的所有新功能项目。这个想法是,在这个画家的网站上,PHP会调出数值,以便将它们显示为新功能新闻报道。



所有的基础都在那里,我碰到一个障碍。



最初,我想在SELECT阶段过滤和排序我的数据,但我无法做到这一点。正如你所看到的,机器人事件和非事件项目有日期,但非事件项目只是将它们作为组织整体数据的一种方式。具体的日期和时间只对事件很重要,因为用户将能够知道这些事情发生的时间。所以基本的想法是从表中挑选出一定数量的LATEST项目。所以所有的项目都将从表中读取,按照DATE的顺序排列,然后说,其中20个将被提出。



正如我所说,最初虽然在SELECT阶段这样做,但我认为这可能太复杂了。所以我只是提取所有的项目,然后设置一个PHP代码,以便过滤它们。



所以当我尝试订购日期时,会出现snag。 / strong>我正在尝试将日期转换为订购过程的时间戳,然后返回到显示的日期。但是,我无法获取date-timestamp或timestamp-date(或两者)转换工作。我总是得到与我开始的日期不同的日期。



正如你所看到的,由于Timezones,整个事情变得更加复杂,这是非常重要的是,作为用户必须能够知道这些事情发生在哪里,或者是在什么时候根据他们发生的地方。



我已经试过了如下所示来回转换:

  $ timestamped = strtotime($ date); 
$ datetimed = date('m / d / Y h:i P',$ timestamped);

它不起作用,所以我猜到它与日期格式有关在我的桌子中使用。



所以我试过这个:

  $ var = DateTime :: createFromFormat('m / d / YH:i P',$ date) - > getTimestamp(); 

无法使用...



我在想,也许我宁愿在进程的开头设置时间戳,即插入数据项时。但是,在这里,我还需要将人日期转换为时间戳,如果我无法正确地管理这些,那么没有什么可以正常工作。



明白这个问题很复杂,也许我的解释不是最清楚的!输出示例可能有所帮助。我想要实现的是一个新功能新闻报道,其中包括一系列正在发生的事情:其中一些只是信息(如状态更新,让我们说)没有可见的日期(这里的日期只适用于内部组织;这是EVENT列进入的地方,因为它会过滤哪些项目必须显示其日期,哪些不能),其他的,用户被邀请的实际事件以及哪些显示用户的日期。我甚至有一个代码来计算日期和时间是否在过去或未来,以便在尚未过去的事件上显示UPCOMING标签。但是,我无法处理日期并订购它们。



这个例子应该是或多或少看起来像这样:




$ b $任何和所有的帮助将非常感激! (以及关于你们认为将是处理这种数据检索/组织过程的最实际和最干净/优雅/亲切的方式的反馈...如果在数据输入时,如果在mySQL SELECT阶段,如果稍后等等)



PS我可能补充说,在同一个表中,我处理其他数据。这个特定的新功能数据由一个SELECT函数选择,该函数在特定的What's New新闻报道中检索的任何行中查找特定WHATSNEW列的值为TRUE。






解决方案(通过答案)



因为问题是关于组织时间和时区作为一个字符串,可以这么说,那么我不知道我可以标记这两个伟大的答案是正确的那个具体的问题。我最终做的是剥离时区,将它们放在一个单独的列中。然后我将日期列格式化为日期时间。所以我解决了,因为mySQL Select可以照顾我的订单。现在,关于时区,我最终作弊了一点:我认为我们的艺术家不可能在两个不同的时区的两个事件在同一时间,所以,真的很不可能,我们需要订购二事件如此紧密,每个人的时区都是一个真正的区别,这是先发的。所以我只是按日期自己的事情顺序,然后鞭打一个代码段来照顾时区,并将它们变成GMT + 1,GMT-5显示,所以用户将知道位置是哪里当地时间。我最后使用 DateTime :: createFromFormat() - > getOffset(),我现在看到我的第二个回答者推荐,并说我在正确的轨道上,所以我很高兴我保留在那里为了进一步澄清这一点,我添加了一个位置列,网站管理员可以指定城市,说巴黎,说伦敦 , 等等。所以用户最终会出现与我的示例中显示的东西非常相似的东西,除了它会说 ...(巴黎,GMT + 1)等等



无论如何,对于那些有完全相同的问题的人来说,最终都会考虑到完全相同的事情,而这种出路更实用,这里是我的代码结束了。其余只是填写。请享用!并感谢亲爱的那些善良的亲爱的人,从他们的日子中抽出时间帮助我找出解决这个问题的决议! (我可能有一个额外的} ...对不起,重新格式化,当一个粘贴到SO是非常繁琐的!我修改了代码两次,可以如果(isset($ item)&&$&$ item ['event'),则不需要找到任何问题。

  ] =='1'){
$ event = $ item ['event'];
$ date = $ items ['date'];

$ date_array = date_parse($ date);

$ minute = $ date_array ['minute'];
if($ minute< 10){
$ minute ='0'。$ minute;
}

$ timezone = $ item ['timezone'];
if($ timezone!==''){
$ timezone = DateTime :: createFromFormat('P',$ timezone) - > getOffset();
$ timezone = $ timezone / -3600;
if($ timezone< 0){
$ timezone = $ timezone;
} else
if($ timezone == 0){
$ timezone ='-0';
} else {
$ timezone ='+'。$ timezone;
}
$ timezone ='Etc / GMT'。$ timezone;

$ timezone_real = $ item ['timezone'];
$ timezone_real = DateTime :: createFromFormat('P',$ timezone) - > getOffset();
$ timezone_real = $ timezone_real / -3600;
if($ timezone_real< 0){
$ timezone_real = str_replace(' - ','+',$ timezone_real); //。':00'
} else
if($ timezone_real == 0){
$ timezone_real ='+0'; //:00';
} else {
$ timezone_real =' - '。$ timezone_real; //。':00';
}
$ timezone_real ='GMT'$ timezone_real;

date_default_timezone_set($ timezone);
}

$ today = date('n / j / Y G:我',time());
$ today = strtotime($ today);
$ event_date = $ date_array ['month']。'/'。$ date_array ['day']。'/'。$ date_array ['year']。''$ date_array ['hour']。 ':'。$ minute;
$ event_date_unformatted = strtotime($ event_date);

if($ date_array ['hour'] =='0'){
$ hour_convert ='12';
$ hour_suffix ='a.m.';
} else if($ date_array ['hour']< 12){
$ hour_convert = $ date_array ['hour'];
$ hour_suffix ='a.m.';
} else if($ date_array ['hour'] =='12'){
$ hour_convert = $ date_array ['hour'];
$ hour_suffix ='p.m.';
} else {
$ hour_convert = $ date_array ['hour'] - 12;
$ hour_suffix ='p.m.';
}

$ date_convert = array('1'=>'January','2'=>'二月','3'=>'三月' '=''''''''''''''''''''''''''''''''''''& '=''''''''''''''''''''''&''''''''''

$ event_date = $ date_convert [$ date_array ['month']]。''$ date_array ['day']。''$ $ date_array ['year']。 $ hour_convert。':'。$ minute。''。$ hour_suffix;

if(($ event_date_unformatted- $ today)> 0){
echo'< h5> UPCOMING:< / h5>
echo'< h6>'$ item ['location']。','。$ event_date。'< sup>('。$ timezone_real。')< / sup>< / h6> ';
}
}


解决方案

你说 DateTime :: createFromFormat 不起作用,但不要告诉我们错误信息是什么。我猜是因为你的格式字符串不代表您传递的格式。有关可接受的格式,请参阅手册页



说完了,我相信你正在跟踪 DateTime :: createFromFormat ,这是我要采取的方法。有比SQL更强大的SQL foo可能可以提出一种查询方法,但这是我纯粹的PHP方法,可以让您在日期排序的事件数组: -

  //我们连接到我们的数据库
$ dsn ='mysql:dbname = stackoverflow; host = 127.0.0.1';
$ user ='********';
$ password ='*********';

try {
$ dbh = new PDO($ dsn,$ user,$ password);
} catch(PDOException $ e){
echo'连接失败:'。 $ e-> getMessage();
}

//然后我们从表中获取我们的事件列表
$ sql =select * from datetable;

$ select = $ dbh-> prepare($ sql);
$ select-> execute();

//我们现在有一个关联的事件数组,但是顺序错误。
$ results = $ select-> fetchAll(PDO :: FETCH_ASSOC);

$ events = array();

//我们要在日期排序,所以我们可以将日期格式化为
foreach($ results as $ result){
$ event = $结果;
$ date = explode('',$ result ['date']);
if(isset($ date [1])){
$ event ['date'] = \DateTime :: createFromFormat('m / d / YH:i',$ date [0] 。'。$ date [1]);
$ event ['tz'] = $ date [2];
} else {
$ event ['date'] = \DateTime :: createFromFormat('m / d / Y',$ date [0]);
}
$ events [] = $ event;
}

//我们的排序函数
$ byDate = function(array $ eventA,array $ eventB){
return $ eventB ['date']> $ eventA ['date']? -1:1;
};

//排序数组
usort($ events,$ byDate);

//现在我们的数组正确排序
var_dump($ events);

结果: -

  array(size = 5)
0 =>
数组(size = 6)
'id'=>字符串'2'(length = 1)
'title'=> string'Meeting'(length = 7)
'description'=> string'With reps。'(length = 10)
'event'=> string'Yes'(length = 3)
'date'=>
object(DateTime)[4]
public'date'=> string'2013-02-15 09:00:00'(length = 19)
public'timezone_type'=> int 3
public'timezone'=>字符串'Europe / London'(length = 13)
'tz'=>字符串'-05:00'(length = 6)
1 =>
数组(size = 5)
'id'=> string'1'(length = 1)
'title'=> string'Big painting'(length = 12)
'description'=> string'3-day work'(length = 10)
'event'=> string'No'(length = 2)
'date'=>
object(DateTime)[3]
public'date'=> string'2013-03-10 23:18:05'(length = 19)
public'timezone_type'=> int 3
public'timezone'=>字符串'Europe / London'(length = 13)
2 =>
数组(size = 5)
'id'=> string'4'(length = 1)
'title'=>字符串'圆形油漆'(长度= 12)
'description'=>字符串'一周'(长度= 8)
'event'=> string'No'(length = 2)
'date'=>
object(DateTime)[6]
public'date'=> string'2013-04-05 23:18:05'(length = 19)
public'timezone_type'=> int 3
public'timezone'=>字符串'Europe / London'(length = 13)
3 =>
数组(size = 6)
'id'=> string'5'(length = 1)
'title'=> string'Conference'(length = 10)
'description'=> string'On Picasso'(length = 10)
'event'=> string'Yes'(length = 3)
'date'=>
object(DateTime)[7]
public'date'=> string'2013-04-22 18:00:00'(length = 19)
public'timezone_type'=> int 3
public'timezone'=>字符串'Europe / London'(length = 13)
'tz'=>字符串'-05:00'(length = 6)
4 =>
数组(size = 6)
'id'=> string'3'(length = 1)
'title'=> string'Presentation'(length = 12)
'description'=>字符串'5画'(长度= 11)
'event'=> string'Yes'(length = 3)
'date'=>
对象(DateTime)[5]
public'date'=> string'2013-08-02 22:00:00'(length = 19)
public'timezone_type'=> int 3
public'timezone'=>字符串'Europe / London'(length = 13)
'tz'=>字符串'+02:00'(长度= 6)

仍然很出色的主要问题是时区。您的数据库存储偏移量,而不是时区。在这方面有一些问题(这个一个例如),所以我不会在这些努力上加倍,但是如果你找到一个方法,你可以在数组中找到偏移量。



我在注释中注意到,您正在考虑添加时区列,这是一个好主意。但是,我建议您将其作为TZ字符串从此列表存储起来然后可以直接传递到 DateTimeZone 的构造函数,为您提供诸如夏令时津贴等优点。


I've been picking at my brain for a couple of days with the following conundrum.

I've basically the following complex mySQL table:

    | ID |   TITLE      |    DESCRIPTION    | EVENT |      DATE               |
    |----|--------------|-------------------|-------|-------------------------|
    |  1 | Big painting | 3-day work        |  No   | 03/10/2013              |
    |  2 | Meeting      | With reps.        |  Yes  | 02/15/2013 09:00 -05:00 |
    |  3 | Presentation | 5 paintings       |  Yes  | 08/02/2013 22:00 +02:00 |
    |  4 | Round paint. | One week          |  No   | 04/05/2013              |
    |  5 | Conference   | On Picasso        |  Yes  | 04/22/2013 18:00 -05:00 |

(EDIT: Perhaps I need to clarify that the DATE column is not set as DATE or DATETIME [due to the need to include the Timezone in the data] but rather as VARCHAR, which is why the organization is complicated from the start.)

As you can see, it's a table which comprises all "What's New" items for a painter, for example. The idea is that on this painter's website PHP will call out values in order to display them as a "What's New" news ticker.

All the basics are there but I'm hitting a snag.

Initially, I would like to filter and order my data at the SELECT stage, but I was having trouble doing that. As you can see, bot the event and non-event items have dates, but the non-event items just have them as a way to organize the overall data. The specific date and time is only important for the events, because that way the user will be able to know when these things are occurring. So the basic idea would be to pick out from the table a certain number of the LATEST items. So all items would be read from the table, placed in order of DATE, and then, say, 20 of them would be brought out.

As I said, I had initially though of doing this at the SELECT stage, but I think it might be too complex. So I just extracted all items and set a PHP code after them in order to filter them.

So the snag appears when I try to order the dates. I'm trying to convert dates to timestamps for the ordering process, then back to dates for the displaying. However, I can't get the date-timestamp or timestamp-date (or both) conversion to work. I always end up with dates that are different to those I started with.

As you can see, the entire thing is made more complex because of the Timezones, which are very important, as a user must be able to know where these things are happening or, rather, at what time according to where they're happening.

I've tried simply converting back and forth like so:

    $timestamped = strtotime($date);
    $datetimed = date('m/d/Y h:i P',$timestamped);

And it doesn't work, so I guessed it had something to do with the date format I'm using in my table.

So then I tried this:

    $var = DateTime::createFromFormat('m/d/Y H:i P',$date)->getTimestamp();

To no avail, yet...

I'm thinking that perhaps I should rather set the timestamp at the beginning of the process, i.e. when inserting the data items. But, here also, I would need to convert a "human" date to a timestamp, and if I can't manage this correctly, nothing will properly work.

I understand this question is complex and perhaps my explanation isn't the clearest! Perhaps an output example might help. What I'm trying to achieve is a "What's New" news ticker that includes a list of things that are going on: some of them just information (like status updates, lets say) without visible dates (here dates are only for internal organization; this is where the EVENT column comes in, as it filters which items must show their dates and which must not), others, actual events to which the user is invited and which display their dates for the user. I even have a code that calculates whether the date and time is in the past or the future in order to display an "UPCOMING" tag on those events that are not yet past. However, I'm having trouble handling the dates and ordering them.

This is what this example should more or less look like at the end:

Any and all help will be GREATLY appreciated! (As well as feedback on what you guys think will be the most practical and most clean/elegant/pro way of handling this data retrieval/organization process... if at data input, if at mySQL SELECT stage, if later, etc.)

P.S. I might perhaps add that in the same table I handle other data. This specific "What's New" data is selected by a SELECT function that looks for a specific WHATSNEW column to have a value of TRUE in any row that will be retrieved for this specific "What's New" news ticker.


RESOLUTION (THOUGH NOT ANSWER)

Because the question was about organizing times and timezones as one string, so to speak, then I'm not sure I can mark any of these two great answers as correct for that specific issue. What I did end up doing was stripping the timezones and putting them in a separate column. Then I formatted my date column as Datetime. So I had that solved, because mySQL Select could take care of the order for me. Now, about the timezones, I ended up cheating a bit: I figured our "artist" couldn't possibly be at two events in two different timezones at the same time, so, really, it's rather improbable that we would need to order two events that are so close together that the timezones of each make a real difference which comes first. So I just have the thing order itself by dates and then whipped up a snippet to take care of the timezones and turn them into "GMT+1", "GMT-5" displays, so the users will know where the location is of that local time. I ended up using DateTime::createFromFormat()->getOffset(), which I've now seen my second answerer recommended, and said I was on the right track, so I'm happy I kept it in there In order to further clarify this, I added a Location column, where the webmaster will be able to specify the city, say "Paris", say "London", and so on. So the user will end up having something very similar to that which is shown in my example, except that it will say ... (Paris, GMT+1) and so on.

Anyway, for anyone out there that has the exact same issue and ends up thinking the exact same things and that this way out is more practical, here goes the heart of the code I ended up with. The rest is just "fill-in". Enjoy! And thanks to both darling persons who were so kind as to take time from their days to help me out in finding a resolution for this issue! (I may have an extra }... sorry for that. The re-formatting when one pastes it into SO is really tedious! I've revised the code twice and can't find any problems, though.)

if(isset($item) && $item['event'] == '1') {
  $event = $item['event'];
  $date  = $item['date'];

  $date_array = date_parse($date);

  $minute = $date_array['minute'];
  if($minute<10) {
    $minute = '0'.$minute;
  }

  $timezone = $item['timezone'];
  if($timezone!=='') {
    $timezone = DateTime::createFromFormat('P',$timezone)->getOffset();
    $timezone = $timezone/-3600;
    if($timezone<0) {
      $timezone = $timezone;
    } else
    if($timezone==0) {
      $timezone = '-0';
    } else {
      $timezone = '+'.$timezone;
    }
    $timezone = 'Etc/GMT'.$timezone;

    $timezone_real = $item['timezone'];
    $timezone_real = DateTime::createFromFormat('P',$timezone)->getOffset();
    $timezone_real = $timezone_real/-3600;
    if($timezone_real<0) {
      $timezone_real = str_replace('-','+',$timezone_real);//.':00';
    } else
    if($timezone_real==0) {
      $timezone_real = '+0';//:00';
    } else {
      $timezone_real = '-'.$timezone_real;//.':00';
    }
    $timezone_real = 'GMT'.$timezone_real;

    date_default_timezone_set($timezone);
  }

$today = date('n/j/Y G:i', time());
$today = strtotime($today);
$event_date = $date_array['month'].'/'.$date_array['day'].'/'.$date_array['year'].' '.$date_array['hour'].':'.$minute;
$event_date_unformatted = strtotime($event_date);

if($date_array['hour'] == '0') {
  $hour_convert = '12';
  $hour_suffix = 'a.m.';
} else if($date_array['hour']<12) {
  $hour_convert = $date_array['hour'];
  $hour_suffix = 'a.m.';
} else if($date_array['hour'] == '12') {
  $hour_convert = $date_array['hour'];
  $hour_suffix = 'p.m.';
} else {
  $hour_convert = $date_array['hour']-12;
  $hour_suffix = 'p.m.';
}

$date_convert = array('1'  => 'January', '2'  => 'February', '3'  => 'March', '4'  => 'April', '5'  => 'May', '6'  => 'June', '7'  => 'July', '8'  => 'August', '9'  => 'September', '10' => 'October',  '11' => 'November', '12' => 'December');

$event_date = $date_convert[$date_array['month']].' '.$date_array['day'].', '.$date_array['year'].', '.$hour_convert.':'.$minute.' '.$hour_suffix;

if(($event_date_unformatted-$today)>0) {
  echo '<h5>UPCOMING:</h5>';
  echo '<h6>'.$item['location'].', '.$event_date.' <sup>('.$timezone_real.')</sup></h6>';
}
}

解决方案

You say that DateTime::createFromFormat doesn't work, but don't tell us what the error message is. I guess its because your format string doesn't represent the format you are passing. See the manual page for acceptable formats.

Having said that, I believe that you were on the right track with DateTime::createFromFormat, that is the approach I would take. Somebody with more powerful SQL foo than mine could probably come up with a way of doing this with a query, but here is my purely PHP approach to getting you an array of events sorted on date:-

//first we connect to our database
$dsn = 'mysql:dbname=stackoverflow;host=127.0.0.1';
$user = '********';
$password = '*********';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

//then we get our list of events from the table
$sql = "select * from datetable";

$select = $dbh->prepare($sql);
$select->execute();

//We now have an associative array of events, but in the wrong order.
$results = $select->fetchAll(PDO::FETCH_ASSOC);

$events = array();

//we want to sort on date, so lets get the dates into a format we can sort on
foreach($results as $result){
    $event = $result;
    $date = explode(' ', $result['date']);
    if(isset($date[1])){
        $event['date'] = \DateTime::createFromFormat('m/d/Y H:i', $date[0] . ' ' . $date[1]);
        $event['tz'] = $date[2];
    } else {
        $event['date'] = \DateTime::createFromFormat('m/d/Y', $date[0]);
    }
    $events[] = $event;
}

//our sorting function
$byDate = function(array $eventA, array $eventB){
    return $eventB['date'] > $eventA['date'] ? -1 : 1;
};

//sort the array
usort($events, $byDate);

//we now have our array sorted correctly
var_dump($events);

Result:-

array (size=5)
  0 => 
    array (size=6)
      'id' => string '2' (length=1)
      'title' => string 'Meeting' (length=7)
      'description' => string 'With reps.' (length=10)
      'event' => string 'Yes' (length=3)
      'date' => 
        object(DateTime)[4]
          public 'date' => string '2013-02-15 09:00:00' (length=19)
          public 'timezone_type' => int 3
          public 'timezone' => string 'Europe/London' (length=13)
      'tz' => string '-05:00' (length=6)
  1 => 
    array (size=5)
      'id' => string '1' (length=1)
      'title' => string 'Big painting' (length=12)
      'description' => string '3-day work' (length=10)
      'event' => string 'No' (length=2)
      'date' => 
        object(DateTime)[3]
          public 'date' => string '2013-03-10 23:18:05' (length=19)
          public 'timezone_type' => int 3
          public 'timezone' => string 'Europe/London' (length=13)
  2 => 
    array (size=5)
      'id' => string '4' (length=1)
      'title' => string 'Round paint.' (length=12)
      'description' => string 'One week' (length=8)
      'event' => string 'No' (length=2)
      'date' => 
        object(DateTime)[6]
          public 'date' => string '2013-04-05 23:18:05' (length=19)
          public 'timezone_type' => int 3
          public 'timezone' => string 'Europe/London' (length=13)
  3 => 
    array (size=6)
      'id' => string '5' (length=1)
      'title' => string 'Conference' (length=10)
      'description' => string 'On Picasso' (length=10)
      'event' => string 'Yes' (length=3)
      'date' => 
        object(DateTime)[7]
          public 'date' => string '2013-04-22 18:00:00' (length=19)
          public 'timezone_type' => int 3
          public 'timezone' => string 'Europe/London' (length=13)
      'tz' => string '-05:00' (length=6)
  4 => 
    array (size=6)
      'id' => string '3' (length=1)
      'title' => string 'Presentation' (length=12)
      'description' => string '5 paintings' (length=11)
      'event' => string 'Yes' (length=3)
      'date' => 
        object(DateTime)[5]
          public 'date' => string '2013-08-02 22:00:00' (length=19)
          public 'timezone_type' => int 3
          public 'timezone' => string 'Europe/London' (length=13)
      'tz' => string '+02:00' (length=6)

The main issue still outstanding is the timezones. Your database stores offsets, not timezones. There are some questions on this on SO (this one for example), so I won't double up on those efforts here, but the offsets are available in the array should you find a way to us them.

I noticed in your comments that you are considering adding a time zone column, this is a good idea. However, I would advise you to store them as TZ strings from this list, they can then be passed directly into the constructor of DateTimeZone to give you advantages such as allowance for daylight savings etc.

这篇关于组织日期与时间和时区。 (转换为准确的时间戳)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆