js里的Date()支持啥样的日期格式吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js里的Date()支持啥样的日期格式吗?相关的知识,希望对你有一定的参考价值。
参考技术A 在javascript中,Date()返回的是当前系统的日期和时间。追问给这个方法传的参数是什么样的形式?
追答Date()没有参数
追问你仔细查查,这个是可以传参的,只不过不个非必需参数。
追答JavaScript Date 对象参考手册,你自己看看吧
追问那你又说没有参数,我是不确定他到底能给几种参数形式?
追答本就没有参数!
参考技术B Date 对象用于处理日期和时间。创建 Date 对象的语法:
var myDate=new Date()
Date 对象会自动把当前日期和时间保存为其初始值。
参数形式有以下5种:
new Date("month dd,yyyy hh:mm:ss");
new Date("month dd,yyyy");
new Date(yyyy,mth,dd,hh,mm,ss);
new Date(yyyy,mth,dd);
new Date(ms);
注意最后一种形式,参数表示的是需要创建的时间和GMT时间1970年1月1日之间相差的毫秒数。各种函数的含义如下:
month:用英文表示月份名称,从January到December
mth:用整数表示月份,从(1月)到11(12月)
dd:表示一个月中的第几天,从1到31
yyyy:四位数表示的年份
hh:小时数,从0(午夜)到23(晚11点)
mm:分钟数,从0到59的整数
ss:秒数,从0到59的整数
ms:毫秒数,为大于等于0的整数
如:
new Date("January 12,2006 22:19:35");
new Date("January 12,2006");
new Date(2006,0,12,22,19,35);
new Date(2006,0,12);
new Date(1137075575000); 参考技术C 好像没有参数
PHP:长格式的双重赋值是啥样的?
【中文标题】PHP:长格式的双重赋值是啥样的?【英文标题】:PHP: what does a double assignment look like in longform?PHP:长格式的双重赋值是什么样的? 【发布时间】:2016-03-06 06:11:23 【问题描述】:我什至不知道如何谷歌这个。如何将这个 PHP 语句写成长格式?
$recentlyViewed = $products = $this->getRecentlyViewedProducts();
这样的优化让专家觉得很聪明,而初学者觉得很愚蠢。我很确定我明白结果是什么,但也许我错了。
A:这等价吗?
$products = $this->getRecentlyViewedProducts();
$recentlyViewed = ($products) ? true : false;
B:这是等价的吗?
$products = $this->getRecentlyViewedProducts();
$recentlyViewed = $products;
哪个是对的?
通过 Twitter,似乎 B 是等价的。
公共服务公告
编写非常简单的代码。别傻了。
【问题讨论】:
$products = $this->getRecentlyViewedProducts(); $recentlyViewed = $products;
如果你想分配$this->getRecentlyViewedProducts()
,如果它不为空,你可以这样做:$recentlyViewed = $this->getRecentlyViewedProducts() ? : 'other_value';
这里省略第二个参数意味着如果它评估为真,将分配第一个。否则,将分配“other_value”。请记住,只有当方法返回空数组或 null/false/0/empty 字符串(如果最近没有查看)时它才会起作用。如果它返回,例如即使它实际上是空的,它也会评估为 true 的集合对象。
【参考方案1】:
$recentlyViewed = $products = $this->getRecentlyViewedProducts();
还有
$products = $this->getRecentlyViewedProducts();
$recentlyViewed = ($products) ? true : false;
我认为这是等价的:
不,它不等同。
让我们看看区别
$recentlyViewed = $products = range(1,10);
所以如果你print_r
那么值就是
print_r($recentlyViewed);
print_r($products);
这将打印来自[1,2,3,....10]
的两个数组,但是
$products = range(1,10);
$recentlyViewed = ($products) ? true : false;
因此,如果您打印$products
和$recentlyViewed
,则结果将是第一个将打印array
,另一个将打印1
。
那么什么相当于
$recentlyViewed = $products = $this->getRecentlyViewedProducts();
将会
$products = $this->getRecentlyViewedProducts();
$recentlyViewed = $products;
Demo
【讨论】:
【参考方案2】:等价的就是这个
$products = $this->getRecent();
$recentlyViewed = $products;
我不确定对 $products
的测试是否有意义,因为双重赋值不会返回布尔值。
在这里查看原始类型和对象之间的区别。Are multiple variable assignments done by value or reference?
【讨论】:
你对双重分配是正确的。这让初学者感到困惑,因为通常会看到非显式三元组,例如: $x = $y === 1;这比明确的东西更难理解: $x = ($y === 1) ?真假;因此,我对上述内容的混淆以及不识别赋值的行为与比较运算符不同。 首先 PHP 中没有“三元”复数 :) 据我所知,只有一个三元运算符,即简写if
,之所以称为三元,是因为它需要 3 个操作数,条件和两个结果,一个用于true
,一个用于false
。【参考方案3】:
当你写作时:
$recentlyViewed = $products = $this->getRecentlyViewedProducts();
PHP 所做的是从右手乞求并将最右边的值分配给左侧变量(如果有的话)。该值可以是 const 值(即字符串或数字)、另一个变量或函数的返回值(在这种情况下为$this->getRecentlyViewedProducts()
)。所以这里是步骤:
(
$this->getRecentlyViewedProducts()in this case)
的返回值
将计算值分配给$products
将$product
分配给$recentlyViewed
因此,如果我们假设您的 getRecentlyViewedProducts
函数返回“Hello Brendan!”,那么在执行结束时,$products
和 $recentlyViewed
将具有相同的值。
在 PHP 中,变量类型是隐式的,因此您可以直接在 if
语句中使用它们,如下所示:
if($recentlyViewed)
...
在这种情况下,如果设置了 $recentlyViewed
并且其值 $recentlyViewed
是 0
、false
或 null
以外的任何值,则您的 if
条件将满足。
在 PHP 中使用非布尔值作为检查条件是很常见的,无论如何如果您使用 $recentlyViewed
作为标志,为了代码可读性和内存优化,最好这样做(注意如果您的函数返回例如一个大字符串,将其值复制到单独的变量中以将其用作标志不是明智的选择):
$recentlyViewed = $products ? true : false;
或
$recentlyViewed = $products ? 1 : 0;
虽然结果不会不同。
【讨论】:
以上是关于js里的Date()支持啥样的日期格式吗?的主要内容,如果未能解决你的问题,请参考以下文章