我正在尝试使用 javascript 将“2013 年 7 月 24 日”转换为“DD-MM-YYYY”,但我不断收到错误消息。
我在用 new Date('July 24 2013').format("DD-MM-YYYY");
我错过了什么?
var dateInCST; //Getting CST date as input.
/*Triming the time part and retaining only the date.*/
var onlyDateInCST = new Date(dateInCST.getUTCFullYear(), dateInCST.getUTCMonth(), dateInCST.getUTCDate());
console.log(onlyDateInCST);
Run Code Online (Sandbox Code Playgroud)
我在 +5:30 即 IST 时区。
在通过提供年月日创建日期的过程中,节点 js 将其视为 IST 并自动扣除 -5:30。
Node js 通过将日期视为服务器时区来自动将日期转换为 UTC。但是在浏览器中,我没有时间就获得了正确的 CST 日期。
例子 :
var today = new Date(2017, 2, 7);
console.log(today);
Run Code Online (Sandbox Code Playgroud)
日期应该是2017-03-07T00:00:00.000Z。但是节点js从这个日期扣除UTC之间的服务器时区差异,即+5:30,日期对象变成2017-03-06T18:30:00.000Z
为什么上面的代码在 Node js 和浏览器中的表现不同。有什么解决方法吗?
编辑 :
var date = new Date();
function createDateAsUTC(date) {
return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));
}
console.log(date);
console.log(createDateAsUTC(date)); …Run Code Online (Sandbox Code Playgroud) 在下面的代码中,我想验证 02/08/2017 到 05/08/2017 之间的日期,并向我们发出日期不在范围内的警报
<script type="text/javascript">
function validate()
{
today = new Date();
fromdt= new Date("02/08/2017");
todate=new Date("05/08/2017");
if( document.myForm.entrydt.value == "" )
{
alert( "Please Select Entry Date!" );
document.myForm.entrydt.focus() ;
return false;
}
else if(!document.myForm.entrydt.value.match(letters3))
{
alert("Entry Date: Enter Only Date Format i.e DD/MM/YYYY");
document.myForm.entrydt.focus() ;
return false;
}
else if (!document.myForm.entrydt.value.today > startdt && !document.myForm.entrydt.value.today < todate)
{
alert("Entry Date: Enter Date in Proper Range");
document.myForm.entrydt.focus() ;
return false;
}
return( true );
}
</script>
Run Code Online (Sandbox Code Playgroud)
=================================================== …
三个时间输入,包括开始时间、结束时间以及两者之间的差值。
<input type="time" name="starttime" id="starttime">
<input type="time" name="endtime" id="endtime">
<input type="time" name="duration" id="duration" disabled>
Run Code Online (Sandbox Code Playgroud)
当开始或结束时间更改时,差异会显示在第三个输入中。
例如 23:15 - 20:00 = 03:15。
到目前为止,我只能给出正确的小时数,而不能给出分钟数。
<script>
jQuery(document).ready(function($) {
function calculateTime() {
// Get values.
var valuestart = $("#starttime").val();
var valuestop = $("#endtime").val();
// Create date format.
var timeStart = new Date("01/01/2007 " + valuestart);
var timeEnd = new Date("01/01/2007 " + valuestop);
// Subtract.
var difference = timeEnd - timeStart;
// Attempt 1: Only gets hours.
//var difference_as_hours = difference …Run Code Online (Sandbox Code Playgroud) 我试图看看依靠执行 aconst myNewDate = new Date(dateString)然后使用 an的结果_.isDate(myNewDate)是否足以验证它是“有效日期”,但后来我想:我可以收到什么dateString?
我想到要执行以下操作:
for(i=0;i<110;i++) { console.log(i, new Date(String(i)))}
这是我得到的结果:
0 2000-01-01T06:00:00.000Z
1 2001-01-01T06:00:00.000Z
2 2001-02-01T06:00:00.000Z
3 2001-03-01T06:00:00.000Z
4 2001-04-01T06:00:00.000Z
5 2001-05-01T05:00:00.000Z
6 2001-06-01T05:00:00.000Z
7 2001-07-01T05:00:00.000Z
8 2001-08-01T05:00:00.000Z
9 2001-09-01T05:00:00.000Z
10 2001-10-01T05:00:00.000Z
11 2001-11-01T06:00:00.000Z
12 2001-12-01T06:00:00.000Z
13 Invalid Date
14 Invalid Date
15 Invalid Date
16 Invalid Date
17 Invalid Date
18 Invalid Date
19 Invalid Date
20 Invalid Date
21 Invalid Date
22 Invalid Date
23 Invalid Date
24 …Run Code Online (Sandbox Code Playgroud) 我一直在玩jquery,我遇到了一个时间问题.我有3个时间输入选择框,一个用于小时,一个用于分钟,一个用于Meridian.我需要将此时间转换为24小时字符串格式,然后将其粘贴到隐藏的输入中.
var time = "";
time += $("#EventCloseTimeHour option:selected").text();
time += ":" + $("#EventCloseTimeMin option:selected").text() + ":00";
time += " " + $("#EventCloseTimeMeridian option:selected").text();
$("#ConditionValue").val(time);
Run Code Online (Sandbox Code Playgroud)
这给了我"1:30:00 pm",我需要"13:30:00".任何快速的javascript时间提示?
如果是日期,我发现了许多验证字符串的链接.
但无论如何我无法弄清楚如何验证我们是否有这个东西:
2012年6月6日,其中前6个是月,第2 个是6天
如果用户输入它:
06/06/2012
有任何线索如何以适当的方式完成?
谢谢!!
嗨,我正在尝试用字符串构造一个javascript日期对象,但它一直在构建错误的一天.它总是构成一天落后的一天.这是我的代码
var date = new Date('2006-05-17');
Run Code Online (Sandbox Code Playgroud)
我想要的日期是
Wednesday May 17 2006 00:00:00 GMT-0700 (PDT)
Run Code Online (Sandbox Code Playgroud)
但相反,我得到了
Tue May 16 2006 17:00:00 GMT-0700 (PDT)
Run Code Online (Sandbox Code Playgroud) 首先尝试在IE 9控制台中:
new Date('2013-10-24T07:32:53')
Thu Oct 24 07:32:53 UTC+0200 2013
Run Code Online (Sandbox Code Playgroud)
按预期返回
接下来尝试在FireFox 24控制台中:
new Date('2013-10-24T07:32:53')
Date {Thu Oct 24 2013 07:32:53 GMT+0200 (Central Europe Standard Time)}
Run Code Online (Sandbox Code Playgroud)
然后我进入Chrome 30控制台:
new Date('2013-10-24T07:32:53')
Thu Oct 24 2013 09:32:53 GMT+0200 (Central Europe Daylight Time)
Run Code Online (Sandbox Code Playgroud)
但时间是09,这应该是07.
这是chrome中的错误还是我在这里做错了什么?
我不能使用除了这个'2013-10-24T07:32:53'之外的任何其他格式,我从C#获得JSON.我需要得到这个时间戳的小时,getHours我得到Chrome中的incorect值.
解:
var inputHour = input.split('T')[1];
inputHour = inputHour.substring(0, 2);
Run Code Online (Sandbox Code Playgroud) 我使用一个函数来检查输入的值是否在我的应用程序中用于特定目的的有效文本。
有效值是一个字符串,其中它不是有效的日期或数字,即true或false。
checkText(str) {
return isNaN(str) && isNaN(Date.parse(str)) && ['true', 'false'].indexOf(str) == -1;
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是我遇到了以下字符串问题:“ New Item 3”。
Date.parse("New Item 3")返回一个数字,但是为什么!?同样,如果将3更改为小于13的任何数字,它将返回数字!
这里的任何人都可以向我解释发生了什么?