我知道这里有很多问题要求相似,但看了解答案后,我似乎得到了意想不到的结果。
我有一个完整的日期,我需要将其转换为毫秒
的unix时间戳日期为完整格式:$client = new Google_Client();
$client->setApplicationName("Test");
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/cloud-platform');
$storage = new Google_Service_Storage($client);
$file_name = "test.txt";
$file_content = "this is a test";
$postbody = array(
'name' => $file_name,
'data' => $file_content,
'uploadType' => "media",
'predefinedAcl' => 'publicRead'
);
$gsso = new Google_Service_Storage_StorageObject();
$gsso->setName( $file_name );
$result = $storage->objects->insert( "my_bucket", $gsso, $postbody );
如果我尝试使用Tue Dec 06 2016 10:51:47 GMT+0000 (GMT)
标识符对unix毫秒进行格式化(如文档中所示),我只需要将字符串x
返回
"x"
我在这里做错了什么?在我这样做之前,是否需要将moment(date).format('x') // = x
转换为完整格式之外的其他内容?为什么将参数传递给date
只是让我回到我输入的格式?
答案 0 :(得分:2)
在Moment 2.8.4中添加了x
选项,任何早于该版本的版本都将返回字母x
而不是以毫秒为单位的unix时间。
版本2.8.4
var date = 'Tue Dec 06 2016 10:51:47 GMT+0000 (GMT)';
var unix = moment(new Date(date)).format('x');
console.log(unix);
<p>Version 2.8.4 - working !</p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
旧版本
var date = 'Tue Dec 06 2016 10:51:47 GMT+0000 (GMT)';
var unix = moment(new Date(date)).format('x');
console.log(unix);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js"></script>
请注意,较新版本的Moment也会从随机字符串中弃用构造,因此
moment("Tue Dec 06 2016 10:51:47 GMT+0000 (GMT)")
会给你一个弃用通知,请参阅 - &gt; https://github.com/moment/moment/issues/1407