Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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
Javascript +(offset到a-(offset)您如何处理@Luke_Baulch在这里提到的按天切换日期?您可以这样做:var todayDate=new date();todayDate.setMinutes(todayDate.getMinutes()-tod_Javascript_Date_Formatting_Date Format - Fatal编程技术网

Javascript +(offset到a-(offset)您如何处理@Luke_Baulch在这里提到的按天切换日期?您可以这样做:var todayDate=new date();todayDate.setMinutes(todayDate.getMinutes()-tod

Javascript +(offset到a-(offset)您如何处理@Luke_Baulch在这里提到的按天切换日期?您可以这样做:var todayDate=new date();todayDate.setMinutes(todayDate.getMinutes()-tod,javascript,date,formatting,date-format,Javascript,Date,Formatting,Date Format,+(offset到a-(offset)您如何处理@Luke_Baulch在这里提到的按天切换日期?您可以这样做:var todayDate=new date();todayDate.setMinutes(todayDate.getMinutes()-todayDate.getTimezoneOffset();todayDate.toISOString().slice(0,10);这应该有助于避免UTC问题。@FernandoAguilar一个疑问,我们如何知道我们需要减去或添加偏移量?var t



+(offset到a
-(offset
)您如何处理@Luke_Baulch在这里提到的按天切换日期?您可以这样做:var todayDate=new date();todayDate.setMinutes(todayDate.getMinutes()-todayDate.getTimezoneOffset();todayDate.toISOString().slice(0,10);这应该有助于避免UTC问题。@FernandoAguilar一个疑问,我们如何知道我们需要减去或添加偏移量?
var todayDate=新日期(2018,3-1,26);todayDate.toISOString().slice(0,10);
给我
“2018-03-25”
。在另一个系统上
var todayDate=新日期(2018,3-1,26,17,0,0);todayDate.toISOString().slice(0,10);
给了我
“2018-03-27”
。并不总是有效。由于UTC转换,它有时会减去一天。2个字母格式没有填充。如果日期或月份小于10,它将显示一位数,这就是为什么不能直接使用它。是的,但这可以通过简单地使用javascript来实现,我想这完全符合您的要求,不是吗?@YatenderSinghyeah corre但检查问题“yyyy-mm-dd”的标题,他想要的格式:)var old_date=new date(日期);var new_date=old_date.getFullYear()+'-'+(old_date.getMonth()+1)+'-'+old_date.getDate()可能值得注意的是,它只会给你2017-08-23,如果你远远落后于UTC(例如在美国)。我最喜欢这个解决方案-易于阅读,并且不依赖于
toISOString()
以及使用该函数可能存在的时区陷阱。这是第一个不会伤害我大脑的方法。没有人会因为这是最简单的方法而感到震惊???.toISOString()不能正确使用夏令时。@JoeDevmon:我不明白这在这里有什么关系。
-(date.getTimezoneOffset()*60000)
位应该可以消除任何时区差异,包括夏令时的影响。@JohnSlegers我就是这么想的,但在某些情况下,我还是在前一天得到的。我进行了重构,您的示例现在可以运行了。我一定是有个奇怪的约会串什么的。谢谢你坚持并指出这一点+1我在SO和其他网站上到处搜索,以找到处理JS中日期时区问题的最佳方法,这是迄今为止最简单、最好的方法。非常感谢。很好的清洁和评论解决方案。然而,我对第一个论点持怀疑态度,它被一个新的日期(如果不被确认为有效日期)悄悄地取代。我宁愿将这个“optionnal default value”作为第二个参数,并返回某种异常(可能是一个简单的“无效日期格式”返回字符串),以防无法识别该格式,这样测试人员/用户就可以清楚地看到错误。您知道为什么会这样吗?ISO格式只是默认格式,还是这些地区真的使用这种格式?如果是前者,我会担心它将来可能会意外更改。这不适用于浏览器之外的NodeJ。@jymbob我认为这些区域设置确实使用了这些格式。通过查看这个维基百科页面,我得到了相同的答案:第二个选项可能显示错误的日期,因为它将以UTC时区显示数据。很酷的解决方案,但它是一个300kb的包,应用于react项目:
npm安装时刻--save
从“时刻”导入时刻
const showEventDate=moment(此处为您的日期)。格式('YYYY-MM-DD;HH:MM A')以任何格式显示日期/时间的纯解决方案。它提供本地日期时间和上午/下午和任何你需要的只是改变格式。还提供了简单的日期/时间计数解决方案。@ TeTraceCoover作为上面提到的亚当,矩的大小相当大(我认为它更像是67 KB,但仍然)。因此,在评估任何依赖性的易用性和实用性时,您应该考虑这一点。还有更小的替代方案(day.js=2kb)。只需更新
moment.js
库即可-
moment.js
已停止。当客户机在UTC之前,且UTC时间中的日期比当前客户机日期晚一天时,这不起作用。@Kunal在运行上述代码片段后,能否提供屏幕截图(带代码和结果)使用表明问题的方法有几种简单的方法来屠宰之前已经发布的<代码> toISOString 字符串。对于那些愿意容忍使用<代码> String String 的潜在错误的人来说,纯粹的开销和代码膨胀使得这是一个没有人应该考虑的解决方案。(不管怎么说,第一个片段)。听着,伙计,除非你试图从字面上重新分析日期,否则你根本看不到任何区别,所以我不知道你从哪里可以称之为膨胀。就像在一个已经回答过的老问题上加上任何其他新颖的答案一样,这为读者提供了选择,也许还有知识(“哎呀,我不知道正则表达式能做到这一点!”。读者应该知道答案是否适合他们的用例,你侮辱了他们。我从来没有提到性能,所以你可以留下100000次迭代的争论。我的观点是,早期的答案提供了更简单的技术。是的,但不可读,也不容易扩展。你称之为膨胀,字面意思是
code。。。这被认为是不必要的长、慢或浪费资源。
。这主要是为了知识,所以是的,即使字面上的问题已经得到了回答,有时也有其他角度(至少已经字面上
3▲)发现可能有用!想象一下。
我不玩“西方最快的枪”“游戏,所以当你看到我发布一个迟来的答案时,那是因为我有一些有价值的东西要提供,我希望你能认识到我的小心。
-这里有些虚伪。我很清楚第一个片段远没有简单地调用
.slice(0,10)
slice()
更简洁、直接、易读。我喜欢regex bu
var date = Date.parse('Sun May 11,2014');

function format(date) {
  date = new Date(date);

  var day = ('0' + date.getDate()).slice(-2);
  var month = ('0' + (date.getMonth() + 1)).slice(-2);
  var year = date.getFullYear();

  return year + '-' + month + '-' + day;
}

console.log(format(date));
format = function date2str(x, y) {
    var z = {
        M: x.getMonth() + 1,
        d: x.getDate(),
        h: x.getHours(),
        m: x.getMinutes(),
        s: x.getSeconds()
    };
    y = y.replace(/(M+|d+|h+|m+|s+)/g, function(v) {
        return ((v.length > 1 ? "0" : "") + z[v.slice(-1)]).slice(-2)
    });

    return y.replace(/(y+)/g, function(v) {
        return x.getFullYear().toString().slice(-v.length)
    });
}
format(new Date('Sun May 11,2014'), 'yyyy-MM-dd')
"2014-05-11
new Date().format("%Y-%m-%d")
const yourDate = new Date()
yourDate.toISOString().split('T')[0]
const offset = yourDate.getTimezoneOffset()
yourDate = new Date(yourDate.getTime() - (offset*60*1000))
return yourDate.toISOString().split('T')[0]
var d = new Date(date);
date = [
  d.getFullYear(),
  ('0' + (d.getMonth() + 1)).slice(-2),
  ('0' + d.getDate()).slice(-2)
].join('-');
require("datejs")
(new Date()).toString("yyyy-MM-dd")
npm i timesolver
const timeSolver = require('timeSolver');
const date = new Date();
const dateString = timeSolver.getString(date, "YYYY-MM-DD");
getString
var date = new Date('1970-01-01'); // Or your date here
console.log((date.getMonth() + 1) + '/' + date.getDate() + '/' +  date.getFullYear());
Date.prototype.yyyymmdd = function() {         

    var yyyy = this.getFullYear().toString();                                    
    var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based         
    var dd  = this.getDate().toString();             

    return yyyy + '-' + (mm[1]?mm:"0"+mm[0]) + '-' + (dd[1]?dd:"0"+dd[0]);
};
function localDay(time) {
  var minutesOffset = time.getTimezoneOffset()
  var millisecondsOffset = minutesOffset*60*1000
  var local = new Date(time - millisecondsOffset)
  return local.toISOString().substr(0, 10)
}
function DateToString(inDate, formatString) {
    // Written by m1m1k 2018-04-05

    // Validate that we're working with a date
    if(!isValidDate(inDate))
    {
        inDate = new Date(inDate);
    }

    // See the jsFiddle for extra code to be able to use DateToString('Sun May 11,2014', 'USA');
    //formatString = CountryCodeToDateFormat(formatString);

    var dateObject = {
        M: inDate.getMonth() + 1,
        d: inDate.getDate(),
        D: inDate.getDate(),
        h: inDate.getHours(),
        m: inDate.getMinutes(),
        s: inDate.getSeconds(),
        y: inDate.getFullYear(),
        Y: inDate.getFullYear()
    };

    // Build Regex Dynamically based on the list above.
    // It should end up with something like this: "/([Yy]+|M+|[Dd]+|h+|m+|s+)/g"
    var dateMatchRegex = joinObj(dateObject, "+|") + "+";
    var regEx = new RegExp(dateMatchRegex,"g");
    formatString = formatString.replace(regEx, function(formatToken) {
        var datePartValue = dateObject[formatToken.slice(-1)];
        var tokenLength = formatToken.length;

        // A conflict exists between specifying 'd' for no zero pad -> expand
        // to '10' and specifying yy for just two year digits '01' instead
        // of '2001'.  One expands, the other contracts.
        //
        // So Constrict Years but Expand All Else
        if (formatToken.indexOf('y') < 0 && formatToken.indexOf('Y') < 0)
        {
            // Expand single digit format token 'd' to
            // multi digit value '10' when needed
            var tokenLength = Math.max(formatToken.length, datePartValue.toString().length);
        }
        var zeroPad = (datePartValue.toString().length < formatToken.length ? "0".repeat(tokenLength) : "");
        return (zeroPad + datePartValue).slice(-tokenLength);
    });

    return formatString;
}
DateToString('Sun May 11,2014', 'MM/DD/yy');
DateToString('Sun May 11,2014', 'yyyy.MM.dd');
DateToString(new Date('Sun Dec 11,2014'),'yy-M-d');
var date = new Date("Sun May 11,2014");
var dateString = new Date(date.getTime() - (date.getTimezoneOffset() * 60000 ))
                    .toISOString()
                    .split("T")[0];
new Date().toLocaleString("en-IN", {timeZone: "Asia/Kolkata"}).split(',')[0]
var d = new Date();

var date1 = d.getFullYear() + '' +
            ((d.getMonth()+1) < 10 ? "0" + (d.getMonth() + 1) : (d.getMonth() + 1)) +
            '' +
            (d.getDate() < 10 ? "0" + d.getDate() : d.getDate());

var time1 = (d.getHours() < 10 ? "0" + d.getHours() : d.getHours()) +
            ':' +
            (d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes()) +
            ':' +
            (d.getSeconds() < 10 ? "0" + d.getSeconds() : d.getSeconds());

print(date1+' '+time1);
new Date(new Date(YOUR_DATE.toISOString()).getTime() - 
                 (YOUR_DATE.getTimezoneOffset() * 60 * 1000)).toISOString().substr(0, 10)
new Date().toLocaleDateString('pt-br').split( '/' ).reverse( ).join( '-' );
new Date().toISOString().split('T')[0]
new Date('23/03/2020'.split('/').reverse().join('-')).toISOString()
new Date('23/03/2020'.split('/').reverse().join('-')).toISOString().split('T')[0]
date.format(moment.HTML5_FMT.DATE)
(new Date())
    .toISOString()
    .replace(
        /^(?<year>\d+)-(?<month>\d+)-(?<day>\d+)T.*$/,
        '$<year>-$<month>-$<day>'
    )
(new Date())
    .toISOString()
    .match(
        /^(?<yyyy>\d\d(?<yy>\d\d))-(?<mm>0?(?<m>\d+))-(?<dd>0?(?<d>\d+))T(?<HH>0?(?<H>\d+)):(?<MM>0?(?<M>\d+)):(?<SSS>(?<SS>0?(?<S>\d+))\.\d+)(?<timezone>[A-Z][\dA-Z.-:]*)$/
    )
    .groups
{
    H: "8"
    HH: "08"
    M: "45"
    MM: "45"
    S: "42"
    SS: "42"
    SSS: "42.855"
    d: "14"
    dd: "14"
    m: "7"
    mm: "07"
    timezone: "Z"
    yy: "20"
    yyyy: "2020"
}
14/7/'20 @ 8:45
new Date().toLocaleDateString() // 8/19/2020

new Date().toLocaleDateString('en-US', {year: 'numeric', month: '2-digit', day: '2-digit'}); // 08/19/2020 (month and day with two digits)

new Date().toLocaleDateString('en-ZA'); // 2020/08/19 (year/month/day) notice the different locale

new Date().toLocaleDateString('en-CA'); // 2020-08-19 (year-month-day) notice the different locale

new Date().toLocaleString("en-US", {timeZone: "America/New_York"}); // 8/19/2020, 9:29:51 AM. (date and time in a specific timezone)

new Date().toLocaleString("en-US", {hour: '2-digit', hour12: false, timeZone: "America/New_York"});  // 09 (just the hour)
.toJSON().slice(0,10);
const formatDate = d => [
    d.getFullYear(),
    (d.getMonth() + 1).toString().padStart(2, '0'),
    d.getDate().toString().padStart(2, '0')
].join('-');
function vanillaToDateOnlyIso8601() {
  // month May has zero-based index 4
  const date = new Date(2014, 4, 11);

  const yyyy = date.getFullYear();
  const mm = String(date.getMonth() + 1).padStart(2, "0"); // month is zero-based
  const dd = String(date.getDate()).padStart(2, "0");

  if (yyyy < 1583) {
    // TODO: decide how to support dates before 1583
    throw new Error(`dates before year 1583 are not supported`);
  }

  const formatted = `${yyyy}-${mm}-${dd}`;
  console.log("vanilla", formatted);
}
import { formatISO } from "date-fns";

function dateFnsToDateOnlyIso8601() {
  // month May has zero-based index 4
  const date = new Date(2014, 4, 11);
  const formatted = formatISO(date, { representation: "date" });
  console.log("date-fns", formatted);
}
import { LocalDate, Month } from "@js-joda/core";

function jodaDateOnlyIso8601() {
  const someDay = LocalDate.of(2014, Month.MAY, 11);
  const formatted = someDay.toString();
  console.log("joda", formatted);
}
import { Temporal } from "proposal-temporal";

function temporalDateOnlyIso8601() {
  // yep, month is one-based here (as of Feb 2021)
  const plainDate = new Temporal.PlainDate(2014, 5, 11);
  const formatted = plainDate.toString();
  console.log("proposal-temporal", formatted);
}